name: Build, Push and Update Image in Manifest on: push: branches: [ "main" ] paths: - 'backend/**' workflow_dispatch: jobs: build-and-update: runs-on: ubuntu-latest permissions: contents: write packages: write steps: - name: Checkout repo uses: actions/checkout@v4 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push Docker image id: build uses: docker/build-push-action@v5 with: context: ./backend push: true tags: ${{ secrets.DOCKER_USER }}/cc-app-demo:latest - name: Get image digest run: echo "IMAGE_DIGEST=${{ steps.build.outputs.digest }}" >> $GITHUB_ENV - name: Update manifests with new image digest uses: OpsVerseIO/image-updater-action@0.1.0 with: branch: main targetBranch: main createPR: 'false' message: 'Update image digest in manifests' token: ${{ secrets.GITHUB_TOKEN }} changes: | { "deployment/app-demo-deployment.yaml": { "spec.template.spec.containers[0].image": "${{ secrets.DOCKER_USER }}/cc-app-demo@${{ env.IMAGE_DIGEST }}" }, "deployment/app-demo-worker-deployment.yaml": { "spec.template.spec.containers[0].image": "${{ secrets.DOCKER_USER }}/cc-app-demo@${{ env.IMAGE_DIGEST }}" } }