diff --git a/.github/workflows/schemas.yml b/.github/workflows/schemas.yml index bd93ea7f..48561150 100644 --- a/.github/workflows/schemas.yml +++ b/.github/workflows/schemas.yml @@ -2,7 +2,7 @@ name: 📄 Schemas on: push: - branches: [main] + branches: [main, "release-plz-*"] # branches: [main, "**"] permissions: @@ -14,6 +14,7 @@ jobs: runs-on: ubuntu-latest outputs: rust: ${{ steps.filter.outputs.rust }} + manifest: ${{ steps.filter.outputs.manifest }} steps: - name: Checkout Repository uses: actions/checkout@v4 @@ -26,10 +27,12 @@ jobs: - 'homestar-runtime/src/**' - 'homestar-schemas/src/**' - 'homestar-workflow/src/**' + manifest: + - 'Cargo.toml' schemas: needs: changes - if: ${{ needs.changes.outputs.rust == 'true' }} + if: ${{ needs.changes.outputs.rust == 'true' || needs.changes.outputs.manifest == 'true' }} env: SCCACHE_GHA_ENABLED: "true" RUSTC_WRAPPER: "sccache" @@ -58,12 +61,29 @@ jobs: run: cargo run -p homestar-schemas - name: Check for modified schemas - id: git-check + id: git-check-schemas shell: bash run: echo modified=$(if [[ $(git diff homestar-runtime/schemas/) ]]; then echo "true"; else echo "false"; fi) >> $GITHUB_OUTPUT - - name: Push changes - if: steps.git-check.outputs.modified == 'true' + - name: Push changes to main + if: >- + ${{ github.ref_name == 'main' && + (steps.git-check-schemas.outputs.modified == 'true' && + (needs.changes.outputs.rust == 'true' || needs.changes.outputs.manifest == 'true') + ) + }} + run: | + git config user.name "${GITHUB_ACTOR}" + git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git + git commit -am "chore(schemas): update OpenRPC API doc and JSON schemas" + git push + + - name: Push changes to release-plz branch + if: >- + ${{ startsWith(github.ref_name, 'release-plz') && + (steps.git-check-schemas.outputs.modified == 'true' && needs.changes.outputs.manifest == 'true') + }} run: | git config user.name "${GITHUB_ACTOR}" git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"