ci: test both push and pull_request events #21

Merged
jalil merged 1 commit from push-wrtlnrrsrqoo into main 2025-07-11 19:26:04 +02:00
4 changed files with 50 additions and 13 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,10 +90,12 @@ 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:
PR_ID: ${{ steps.pr-number.outputs.pr-number }} ARTIFACT_NAME: ${{ inputs.artifact-name }}
BASE_BRANCH: ${{ inputs.base-branch }}
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 }}
BASE_BRANCH: ${{ inputs.base-branch }} JOB_NAME: ${{ inputs.job-name }}
PR_ID: ${{ steps.pr-number.outputs.pr-number }}
run: | run: |
. "$GITHUB_ACTION_PATH/scripts/utils.sh" . "$GITHUB_ACTION_PATH/scripts/utils.sh"

View file

@ -40,7 +40,9 @@ 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 cannot retrieve old report'
elif [ "$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"
@ -56,13 +58,14 @@ if [ "$(in_private_repo)" != 'true' ] && [ "$JOB_NAME" ]; then
exit 0 exit 0
fi fi
error "Failed to find previous report, expected at: $report_url" error "Failed to find previous report, expected at: $report_url"
else
panic 'job-name is missing, therefore we cannot find the previous report'
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)"