name: BuildAndPushImageOnHarborAndUpdateArgoCDConfig on: push: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest steps: - uses: docker/login-action@v1 with: registry: harbor.example.com username: ${{ secrets.HARBOR_USERNAME }} password: ${{ secrets.HARBOR_PASSWORD }} - uses: actions/checkout@v3 - name: BuildAndPushImageOnHarbor run: | docker build ./ -t harbor.example.com/chaturmail/chaturmail-backend:${{ github.run_number }} docker push harbor.example.com/chaturmail/chaturmail-backend:${{ github.run_number }} - name: Clone Repository run: | git clone - name: Install yq run: | sudo wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64 sudo chmod a+x /usr/local/bin/yq - name: Update YAML File run: | yq -i '.spec.template.spec.containers[0].image = "harbor.example.com/chaturmail/chaturmail-backend:${{ github.run_number }}"' 'argocd-configs/chaturmail-pod.yaml' - name: Push to Repo run: | git config --global user.name "${{secrets.USERNAME_GITHUB}}" git config --global user.email "${{secrets.EMAIL_GITHUB}}" cd argocd-test-configs git add . git commit -m "Updated by GitHub Actions" git push --all