name: Manifest Synchronization permissions: contents: read on: release: types: [released] env: WORKSPACE: /tmp/workspace defaults: run: shell: bash --noprofile --norc -CeEuxo pipefail {0} jobs: sync: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: persist-credentials: true - name: Checkout manifest-schema branch run: ./tools/ci/checkout-manifest-schema-branch.sh "${WORKSPACE}" - name: Copy over schema run: cp -- ./manifests/* "${WORKSPACE}" - name: Stage changes working-directory: ${{ env.WORKSPACE }} run: git add . - name: Show diff working-directory: ${{ env.WORKSPACE }} run: git diff HEAD - name: Detect changes id: changes working-directory: ${{ env.WORKSPACE }} run: | # This output boolean tells us if the dependencies have actually changed printf "count=%s\n" "$(git status --porcelain=v1 | wc -l)" >>"${GITHUB_OUTPUT}" - name: Commit and push # Only push if changes exist if: steps.changes.outputs.count > 0 working-directory: ${{ env.WORKSPACE }} run: | git commit -m "Update manifest schema" && git push origin HEAD