diff --git a/.github/workflows/openapi-diff.yaml b/.github/workflows/openapi-diff.yaml index 6d4a3b1ff4..426b7938c3 100644 --- a/.github/workflows/openapi-diff.yaml +++ b/.github/workflows/openapi-diff.yaml @@ -1,5 +1,9 @@ name: OpenAPI Diff +concurrency: + group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} + cancel-in-progress: true + on: pull_request: paths: @@ -121,16 +125,20 @@ jobs: id: diff run: | docker run --rm -t -v $(pwd):/specs:ro tufin/oasdiff changelog --format markdown /specs/openapi-stable.json /specs/openapi-current.json > openapi-diff.txt || true - # then output in a format that can be used in GitHub Actions + # then output in a format that is useful when you go inside the job output docker run --rm -t -v $(pwd):/specs:ro tufin/oasdiff changelog --format githubactions /specs/openapi-stable.json /specs/openapi-current.json + - name: Show OpenAPI diff + if: github.event_name != 'pull_request' + run: cat openapi-diff.txt - name: Comment on PR with OpenAPI diff + if: github.event_name == 'pull_request' uses: actions/github-script@v7 with: script: | const fs = require('fs'); const diff = fs.readFileSync('openapi-diff.txt', 'utf8'); const diffLines = diff.split('\n').filter(line => line.trim() !== '' && !line.startsWith('#')).length; - const marker = '### OpenAPI Diff'; + const marker = '[//]: # (OpenAPI diff - used to identify the comment)'; // Get all comments on the PR const { data: comments } = await github.rest.issues.listComments({ issue_number: context.issue.number, @@ -144,7 +152,7 @@ jobs: body = `${marker} too long, check the this task output for details.`; console.log(diff); } else if (diffLines > 0) { - body = `${marker}\n\n\`\`\`diff\n${diff}\n\`\`\``; + body = `${marker}\n${diff}`; } else { body = null; }