@@ -20,17 +20,24 @@ jobs:
2020 - name : Install jq
2121 run : sudo apt-get install -y jq
2222
23+ - name : Install semver
24+ run : sudo npm install -g semver
25+
2326 - name : Verify Portfolio Version
2427 run : |
2528 current_version=$(jq -r '.version' ./portfolio/package.json)
2629 previous_version=$(docker image ls --filter "reference=***/web-portfolio" --format "{{.Repository}}:{{.Tag}}" | awk -F ':' '{print $2}')
27- if [[ $current_version = $previous_version ]]; then echo 'Update semantic version in the package.json file'; exit 1; fi
30+ if semver -r "<=$previous_version" "$current_version"; then
31+ echo 'Update semantic version in the package.json file'; exit 1;
32+ fi
2833
2934 - name : Verify Mail Server Version
3035 run : |
3136 current_version=$(jq -r '.version' ./mail-server/package.json)
3237 previous_version=$(docker image ls --filter "reference=***/mail-server" --format "{{.Repository}}:{{.Tag}}" | awk -F ':' '{print $2}')
33- if [[ $current_version = $previous_version ]]; then echo 'Update semantic version in the package.json file'; exit 1; fi
38+ if semver -r "<=$previous_version" "$current_version"; then
39+ echo 'Update semantic version in the package.json file'; exit 1;
40+ fi
3441
3542 validate-docker-compose :
3643 name : Validate Docker Compose Files
8693 - name : Install jq
8794 run : sudo apt-get install -y jq
8895
96+ - name : Install semver
97+ run : sudo npm install -g semver
98+
8999 - name : Set up Docker Buildx
90100 uses : docker/setup-buildx-action@v3
91101
@@ -99,15 +109,19 @@ jobs:
99109 run : |
100110 portfolio_version=$(jq -r '.version' ./portfolio/package.json)
101111 previous_version=$(docker image ls --filter "reference=${{ secrets.DOCKER_USERNAME }}/web-portfolio" --format "{{.Repository}}:{{.Tag}}" | awk -F ':' '{print $2}')
102- if [[ $portfolio_version -eq $previous_version ]]; then echo 'Update semantic version in the package.json file'; exit 1; fi
112+ if semver -r "<=$previous_version" "$portfolio_version"; then
113+ echo 'Update semantic version in the package.json file'; exit 1;
114+ fi
103115
104116 docker build -f ./portfolio/Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/web-portfolio:$portfolio_version -t ${{ secrets.DOCKER_USERNAME }}/web-portfolio:latest ./portfolio
105117 docker save --output portfolio-versioned.docker ${{ secrets.DOCKER_USERNAME }}/web-portfolio:$portfolio_version
106118 docker save --output portfolio-latest.docker ${{ secrets.DOCKER_USERNAME }}/web-portfolio:latest
107119
108120 mail_server_version=$(jq -r '.version' ./mail-server/package.json)
109121 previous_version=$(docker image ls --filter "reference=${{ secrets.DOCKER_USERNAME }}/web-portfolio" --format "{{.Repository}}:{{.Tag}}" | awk -F ':' '{print $2}')
110- if [[ $mail_server_version -eq $previous_version ]]; then echo 'Update semantic version in the package.json file'; exit 1; fi
122+ if semver -r "<=$previous_version" "$mail_server_version"; then
123+ echo 'Update semantic version in the package.json file'; exit 1;
124+ fi
111125
112126 docker build -f ./mail-server/Dockerfile -t ${{ secrets.DOCKER_USERNAME }}/mail-server:$mail_server_version -t ${{ secrets.DOCKER_USERNAME }}/mail-server:latest ./mail-server
113127 docker save --output mail-server-versioned.docker ${{ secrets.DOCKER_USERNAME }}/mail-server:$mail_server_version
0 commit comments