# This workflow posts the result of a performance test back to the pull request as a comment. # Needs to be separate from CI because it has elevated privileges so only runs from main branch. name: Update PR on: workflow_run: workflows: [ "Performance" ] types: - completed jobs: updatepr: runs-on: ubuntu-latest continue-on-error: true if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 5 steps: # report status back to pull request - uses: haya14busa/action-workflow_run-status@v1 - uses: actions/checkout@v3 with: submodules: true - name: 'Download branch build info' uses: dawidd6/action-download-artifact@v2 with: workflow: ${{ github.event.workflow_run.workflow_id }} run_id: ${{ github.event.workflow_run.id }} name: build-info path: build-info - name: 'Get build info' id: build_info run: echo "::set-output name=pr_number::$(cat build-info/pull_request_number)" - name: 'Build comment-body' run: | cat build-info/branchlogs.txt | sed -n '/^.*Tile stats/,$p' > branchsummary.txt cat build-info/branchlogs.txt | sed -n '/^.*Exception in thread/,$p' >> branchsummary.txt cat build-info/baselogs.txt | sed -n '/^.*Tile stats:/,$p' > basesummary.txt cat build-info/baselogs.txt | sed -n '/^.*Exception in thread/,$p' >> basesummary.txt cat << EOF > comment-body.txt
Base $(cat build-info/base_sha) This Branch $(cat build-info/branch_sha)
\`\`\` $(cat basesummary.txt) \`\`\` \`\`\` $(cat build-info/branchlogs.txt | sed -n '/^.*Tile stats:/,$p') \`\`\`
https://github.com/onthegomap/planetiler/actions/runs/${{ github.event.workflow_run.id }}
ℹ️ Base Logs $(cat build-info/base_sha) \`\`\` $(cat build-info/baselogs.txt) \`\`\`
ℹ️ This Branch Logs $(cat build-info/branch_sha) \`\`\` $(cat build-info/branchlogs.txt) \`\`\`
EOF - name: 'Dump comment body' run: cat comment-body.txt - uses: marocchino/sticky-pull-request-comment@v2 with: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} path: comment-body.txt header: performance-tests number: ${{ steps.build_info.outputs.pr_number }}