Compare commits

...

1 commit

Author SHA1 Message Date
5f3b69c129
ci: test both push and pull_request events
Some checks failed
/ report-size-pr (pull_request) Failing after 2s
/ report-download-check-pr (pull_request) Has been skipped
/ check (treefmt) (push) Successful in 3s
/ report-size (push) Successful in 4s
/ report-download-check (push) Successful in 1s
I think we have a bug with pull_request events so...
2025-07-10 20:06:19 +02:00
3 changed files with 51 additions and 5 deletions

View file

@ -24,18 +24,17 @@ jobs:
uses: ./
with:
# Create a comment on the associated PR
comment-on-pr: ${{ github.ref_name != 'main' }}
comment-on-pr: 'false'
# Generate artifacts on main (to speed up comparisons)
# generate-artifact: ${{ github.ref_name == 'main' }}
# Always generate artifacts for testing purposes
generate-artifact: 'true'
# Generate comparisons to main
do-comparison: 'true'
# This job's name (so we can find the artifacts)
# This job's name (so we can find the previous artifacts)
job-name: report-size
report-download-check:
runs-on: nixos
needs: report-size
needs: report-size-push
if: github.event_name == 'push'
steps:
- name: Download previous report
uses: https://git.salame.cl/actions/download-artifact@d8d0a99033603453ad2255e58720b460a0555e1e # v4

View file

@ -0,0 +1,33 @@
on:
pull_request:
jobs:
report-size-pr:
runs-on: nixos
steps:
- uses: "https://git.salame.cl/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683" # v4
- run: nix --version
- name: Create Size Report
uses: ./
with:
# Create a comment on the associated PR
comment-on-pr: 'true'
# Generate artifacts on main (to speed up comparisons)
# generate-artifact: ${{ github.ref_name == 'main' }}
# Always generate artifacts for testing purposes
generate-artifact: 'true'
# Generate comparisons to main
do-comparison: 'true'
# Get the previous artifacts from report-size-push (since those run on main)
job-name: report-size
artifact-name: report.json
report-download-check-pr:
runs-on: nixos
needs: report-size-pr
steps:
- name: Download previous report
uses: https://git.salame.cl/actions/download-artifact@d8d0a99033603453ad2255e58720b460a0555e1e # v4
with:
name: report.json
- name: Verify report exists
run: |
cat report.json

View file

@ -73,6 +73,18 @@ runs:
run: |
. "$GITHUB_ACTION_PATH/utils.sh"
# If we were triggered by a PR then this is easy
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
# shellcheck disable=SC2016
# expanded by the runner
pr_number='${{ github.event.number }}'
log "Triggered by a pull request with index: $pr_number"
log "Expected PR URL: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pulls/$pr_number"
log "Writing output to: $GITHUB_OUTPUT"
echo "pr-number=$pr_number" >> "$GIHUB_OUTPUT"
exit 0
fi
log 'Determine head_ref'
# For push & tag events it'll bet GITHUB_REF_NAME, for pull_request events it'll be GITHUB_HEAD_REF
head_ref=${GITHUB_REF_NAME:-$GITHUB_HEAD_REF}
@ -83,6 +95,8 @@ runs:
-H "Authorization: token $GITHUB_TOKEN" \
-H 'Accept: application/json')
log "Open PRs: $(echo "$prs" | jq --compact output 'map(.number)')"
pr_number=$(echo "$prs" |
jq --arg head_ref "$head_ref" '.[] | select(.head.ref == $head_ref) | .number')