name: Automated tests - publish results on: workflow_run: workflows: - Automated tests types: - completed jobs: get-pr-data: runs-on: ubuntu-latest if: ${{ github.event.workflow_run.event == 'pull_request' }} outputs: pr-number: ${{ steps.set-env.outputs.pr-number }} workflow-id: ${{ steps.set-env.outputs.workflow-id }} steps: # https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#using-data-from-the-triggering-workflow - name: Download artifact uses: actions/github-script@v6 with: script: | let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({ owner: context.repo.owner, repo: context.repo.repo, run_id: context.payload.workflow_run.id, }); let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => { return artifact.name == "pr-comment-data" })[0]; let download = await github.rest.actions.downloadArtifact({ owner: context.repo.owner, repo: context.repo.repo, artifact_id: matchArtifact.id, archive_format: 'zip', }); let fs = require('fs'); fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr-comment-data.zip`, Buffer.from(download.data)); - name: Unzip artifact run: unzip pr-comment-data.zip - name: Set env variables id: set-env run: | echo "pr-number=$(cat ./pr_number)" >> $GITHUB_OUTPUT echo "workflow-id=$(cat ./workflow_id)" >> $GITHUB_OUTPUT comment-pr: runs-on: ubuntu-latest permissions: pull-requests: write needs: get-pr-data steps: - name: Find Comment uses: peter-evans/find-comment@v2 id: fc with: issue-number: ${{ needs.get-pr-data.outputs.pr-number }} comment-author: "github-actions[bot]" body-includes: Automated tests Summary - name: Remove previous comment if: steps.fc.outputs.comment-id != '' uses: actions/github-script@v6 with: script: | github.rest.issues.deleteComment({ owner: context.repo.owner, repo: context.repo.repo, comment_id: ${{ steps.fc.outputs.comment-id }} }) - name: Passing tests comment if: ${{ github.event.workflow_run.conclusion == 'success' }} uses: peter-evans/create-or-update-comment@v2 with: issue-number: ${{ needs.get-pr-data.outputs.pr-number }} body: |