diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml index 904588fb..028aae3e 100644 --- a/.github/workflows/build-deploy.yml +++ b/.github/workflows/build-deploy.yml @@ -12,7 +12,8 @@ on: env: SERVICE_NAME: rpkm67-frontend IMAGE_NAME: ghcr.io/${{ github.repository }} - IMAGE_TAG: + IMAGE_TAG_DEV: + IMAGE_TAG_PROD: jobs: build: @@ -20,7 +21,8 @@ jobs: runs-on: ubuntu-latest if: github.event.pull_request.merged == true || github.event_name == 'workflow_dispatch' outputs: - IMAGE_TAG: ${{ steps.tag_action.outputs.new_tag }} + IMAGE_TAG_DEV: ${{ steps.tag_action.outputs.new_tag }}-dev + IMAGE_TAG_PROD: ${{ steps.tag_action.outputs.new_tag }}-prod permissions: contents: write @@ -41,7 +43,9 @@ jobs: id: tag_action - name: Set IMAGE_TAG - run: echo "IMAGE_TAG=${{ steps.tag_action.outputs.new_tag }}" >> $GITHUB_ENV + run: + echo "IMAGE_TAG_DEV=${{ steps.tag_action.outputs.new_tag }}-dev" >> $GITHUB_ENV + echo "IMAGE_TAG_PROD=${{ steps.tag_action.outputs.new_tag }}-prod" >> $GITHUB_ENV - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -53,25 +57,40 @@ jobs: username: ${{ github.actor }} password: ${{ github.token }} - - name: Build and Push Docker Image + - name: Build and Push Docker Image (DEV) uses: docker/build-push-action@v3 with: push: true - tags: ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }},${{ env.IMAGE_NAME }}:latest + tags: ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_DEV }},${{ env.IMAGE_NAME }}:latest cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max build-args: | - API_BASE_URL=${{ vars.API_BASE_URL }} - FIRST_DATE_DATE=${{ vars.FIRST_DATE_DATE }} - RUP_PEUN_DATE=${{ vars.RUP_PEUN_DATE }} - BASE_DOMAIN_IMAGES=${{ vars.BASE_DOMAIN_IMAGES }} + API_BASE_URL=${{ vars.DEV_API_BASE_URL }} + FIRST_DATE_DATE=${{ vars.DEV_FIRST_DATE_DATE }} + RUP_PEUN_DATE=${{ vars.DEV_RUP_PEUN_DATE }} + BASE_DOMAIN_IMAGES=${{ vars.DEV_BASE_DOMAIN_IMAGES }} + + - name: Build and Push Docker Image (PROD) + uses: docker/build-push-action@v3 + if: github.ref == 'refs/heads/main' + with: + push: true + tags: ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG_PROD }},${{ env.IMAGE_NAME }}:latest + cache-from: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache + cache-to: type=registry,ref=${{ env.IMAGE_NAME }}:buildcache,mode=max + build-args: | + API_BASE_URL=${{ vars.PROD_API_BASE_URL }} + FIRST_DATE_DATE=${{ vars.PROD_FIRST_DATE_DATE }} + RUP_PEUN_DATE=${{ vars.PROD_RUP_PEUN_DATE }} + BASE_DOMAIN_IMAGES=${{ vars.PROD_BASE_DOMAIN_IMAGES }} cd: name: Continuous Deployment needs: build runs-on: ubuntu-latest env: - IMAGE_TAG: ${{ needs.build.outputs.IMAGE_TAG }} + IMAGE_TAG_DEV: ${{ needs.build.outputs.IMAGE_TAG_DEV }} + IMAGE_TAG_PROD: ${{ needs.build.outputs.IMAGE_TAG_PROD }} steps: - name: Checkout DevOps repository @@ -83,13 +102,13 @@ jobs: - name: Update image tag in dev uses: mikefarah/yq@master with: - cmd: yq -i '.[0].value = "${{ env.IMAGE_NAME }}:" + strenv(IMAGE_TAG)' isd/${{ env.SERVICE_NAME }}/deployment.yaml + cmd: yq -i '.[0].value = "${{ env.IMAGE_NAME }}:" + strenv(IMAGE_TAG_DEV)' isd/${{ env.SERVICE_NAME }}/deployment.yaml - name: Update image tag in prod uses: mikefarah/yq@master if: github.ref == 'refs/heads/main' with: - cmd: yq -i '.[0].value = "${{ env.IMAGE_NAME }}:" + strenv(IMAGE_TAG)' prod/${{ env.SERVICE_NAME }}/deployment.yaml + cmd: yq -i '.[0].value = "${{ env.IMAGE_NAME }}:" + strenv(IMAGE_TAG_PROD)' prod/${{ env.SERVICE_NAME }}/deployment.yaml - name: Commit & Push changes uses: actions-js/push@v1.4