mirror of
https://github.com/mpv-player/mpv
synced 2024-12-12 18:06:18 +00:00
22620af459
Github doesn't evaluate expressions unless they're inside ${{ }} See: https://github.com/mpv-player/mpv/actions?query=is%3Afailure+event%3Aworkflow_run
46 lines
1.7 KiB
YAML
46 lines
1.7 KiB
YAML
name: comment
|
|
|
|
on:
|
|
workflow_run:
|
|
workflows: [build]
|
|
types: [completed]
|
|
|
|
jobs:
|
|
pr_comment:
|
|
if: ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }}
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- env:
|
|
GH_REPO: ${{ github.repository }}
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
pr=$(gh pr list --state open --json headRefOid,number \
|
|
--jq '.[] | select(.headRefOid == "${{ github.event.workflow_run.head_sha }}") | .number')
|
|
if [ -z "$pr" ]; then
|
|
echo "No matching pull request found"
|
|
exit 1
|
|
fi
|
|
|
|
artifacts=$(gh api repos/{owner}/{repo}/actions/runs/${{ github.event.workflow_run.id }}/artifacts --jq '.artifacts')
|
|
if [ "$(echo "$artifacts" | jq 'length')" -eq 0 ]; then
|
|
echo "No artifacts found"
|
|
exit 0
|
|
fi
|
|
|
|
body=$(echo "$artifacts" | jq -r '
|
|
def link: "https://nightly.link/${{ github.repository }}/actions/artifacts/\(.id).zip";
|
|
def entry: "* [\(.name)](\(link))";
|
|
"Download the artifacts for this pull request:\n<details><summary>Windows</summary>\n\n" +
|
|
(sort_by(.name) | map(select(.name | test("w64|msvc")) | entry) | join("\n")) +
|
|
"\n</details>\n<details><summary>macOS</summary>\n\n" +
|
|
(sort_by(.name) | map(select(.name | test("macos")) | entry) | join("\n")) +
|
|
"\n</details>"
|
|
')
|
|
|
|
comment_id=$(gh issue view $pr --json comments \
|
|
--jq '.comments[] | select(.author.login == "github-actions") | .id')
|
|
if [ -n "$comment_id" ]; then
|
|
edit=--edit-last
|
|
fi
|
|
gh pr comment $pr --body "$body" $edit
|