Release 1.2.0 #8
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| on: | |
| pull_request: | |
| name: API Spec review | |
| env: | |
| COMPOSE_USER: root | |
| jobs: | |
| api-spec: | |
| runs-on: ubuntu-latest | |
| name: API specification validation | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 2 | |
| # https://taskfile.dev/installation/#github-actions | |
| - uses: go-task/setup-task@v1 | |
| - run: | | |
| docker network create frontend | |
| task --yes site:update | |
| - name: Export API specification | |
| run: | | |
| task --yes api:spec:export | |
| - name: Check for changes in specification | |
| run: git diff --diff-filter=ACMRT --exit-code public/spec.yaml --markdown api-spec-result.md | |
| detect-breaking-changes: | |
| runs-on: ubuntu-latest | |
| needs: [api-spec] | |
| steps: | |
| - name: Check out BASE rev | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ github.base_ref }} | |
| path: base | |
| - name: Check out HEAD rev | |
| uses: actions/checkout@v5 | |
| with: | |
| ref: ${{ github.head_ref }} | |
| path: head | |
| - name: Run OpenAPI Changes (from HEAD rev) | |
| id: api-changes | |
| continue-on-error: true | |
| uses: docker://openapitools/openapi-diff:latest | |
| with: | |
| args: --fail-on-changes base/public/spec.yaml head/public/spec.yaml --markdown api-spec-changes.md | |
| - name: Run OpenAPI Incompatible (from HEAD rev) | |
| id: api-incompatible | |
| continue-on-error: true | |
| uses: docker://openapitools/openapi-diff:latest | |
| with: | |
| args: --fail-on-incompatible base/public/spec.yaml head/public/spec.yaml --markdown api-spec-incompatible.md | |
| - name: Comment PR with no changes | |
| if: steps.api-changes.outcome == 'success' && steps.api-incompatible.outcome == 'success' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| gh pr comment ${{ github.event.pull_request.number }} --body "✅ **No changes detected in API specification**" --create-if-none --edit-last | |
| - name: Comment PR with non-breaking changes | |
| if: steps.api-.outcome == 'failure' && steps.api-incompatible.outcome == 'success' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| echo "## ⚠️ Non-Breaking changes detected in API specification" > ../comment.md | |
| echo "" >> ../comment.md | |
| cat api-spec-changes.md >> ../comment.md | |
| gh pr comment ${{ github.event.pull_request.number }} --body-file ../comment.md --create-if-none --edit-last | |
| - name: Comment PR with breaking changes | |
| if: steps.api-incompatible.outcome == 'failure' | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| echo "## 🛑 Breaking changes detected in API specification" > ../comment.md | |
| echo "" >> ../comment.md | |
| cat api-spec-changes.md >> ../comment.md | |
| gh pr comment ${{ github.event.pull_request.number }} --body-file ../comment.md --create-if-none --edit-last | |
| - name: Fail if breaking changes detected | |
| if: steps.api-incompatible.outcome == 'failure' | |
| run: | | |
| exit 1 |