ci: test both push and pull_request events
All checks were successful
/ check (treefmt) (push) Successful in 3s
/ report-size (push) Successful in 2s
/ report-download-check (push) Successful in 1s
/ report-size-pr (pull_request) Successful in 6s
/ report-download-check-pr (pull_request) Successful in 1s

I think we have a bug with pull_request events so...
This commit is contained in:
Jalil David Salamé Messina 2025-07-10 19:39:36 +02:00
parent ca72db2a3b
commit afce81f97f
Signed by: jalil
GPG key ID: F016B9E770737A0B
4 changed files with 47 additions and 11 deletions

View file

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

@ -90,6 +90,7 @@ runs:
# We want to generate a comment and we we able to find the PR number # We want to generate a comment and we we able to find the PR number
if: inputs.comment-on-pr == 'true' && steps.pr-number.outputs.pr-number != '' if: inputs.comment-on-pr == 'true' && steps.pr-number.outputs.pr-number != ''
env: env:
ARTIFACT_NAME: ${{ inputs.artifact-name }}
PR_ID: ${{ steps.pr-number.outputs.pr-number }} PR_ID: ${{ steps.pr-number.outputs.pr-number }}
COMMENT_ID: ${{ steps.find-comment.outputs.comment-id }} COMMENT_ID: ${{ steps.find-comment.outputs.comment-id }}
DO_COMPARISON: ${{ inputs.do-comparison }} DO_COMPARISON: ${{ inputs.do-comparison }}

View file

@ -40,7 +40,11 @@ has_report() {
# If a base branch is not provided, use the default branch # If a base branch is not provided, use the default branch
base_branch=${BASE_BRANCH:-$(default_branch)} base_branch=${BASE_BRANCH:-$(default_branch)}
if [ "$(in_private_repo)" != 'true' ] && [ "$JOB_NAME" ]; then if in_private_repo; then
warn 'Detected that this is a private repo, retrieving the old report will probably fail'
fi
if ! in_private_repo && [ "$JOB_NAME" ]; then
url=$(base_report_url "$base_branch") url=$(base_report_url "$base_branch")
log "Found previous run at: $url" log "Found previous run at: $url"
@ -58,11 +62,10 @@ if [ "$(in_private_repo)" != 'true' ] && [ "$JOB_NAME" ]; then
error "Failed to find previous report, expected at: $report_url" error "Failed to find previous report, expected at: $report_url"
fi fi
warn "Couldn't retrieve old report:" warn "Couldn't retrieve old report:
warn ' This usuially happens when running on private repos' note: This usually happens when running on private repos or when job-name is not set.
warn ' or when job-name is not set.'
warn See the README for more details"
warn ' See the README for more details'
error "Falling back to slow method (checkout $base_branch and generate the report)" error "Falling back to slow method (checkout $base_branch and generate the report)"