From 7d7a576f501aac897f0c3d8ea74791a4c7001cf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jalil=20David=20Salam=C3=A9=20Messina?= Date: Thu, 10 Jul 2025 19:39:36 +0200 Subject: [PATCH] ci: test both push and pull_request events I think we have a bug with pull_request events so... --- .forgejo/workflows/check.yml | 9 ++++----- .forgejo/workflows/test-pr.yml | 33 +++++++++++++++++++++++++++++++++ action.yml | 6 ++++-- scripts/retrieve-old-report.sh | 15 +++++++++------ 4 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 .forgejo/workflows/test-pr.yml diff --git a/.forgejo/workflows/check.yml b/.forgejo/workflows/check.yml index 14a13b1..1c90cbe 100644 --- a/.forgejo/workflows/check.yml +++ b/.forgejo/workflows/check.yml @@ -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 diff --git a/.forgejo/workflows/test-pr.yml b/.forgejo/workflows/test-pr.yml new file mode 100644 index 0000000..43fb880 --- /dev/null +++ b/.forgejo/workflows/test-pr.yml @@ -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 diff --git a/action.yml b/action.yml index f27253b..db929d2 100644 --- a/action.yml +++ b/action.yml @@ -90,10 +90,12 @@ runs: # 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 != '' 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 }} DO_COMPARISON: ${{ inputs.do-comparison }} - BASE_BRANCH: ${{ inputs.base-branch }} + JOB_NAME: ${{ inputs.job-name }} + PR_ID: ${{ steps.pr-number.outputs.pr-number }} run: | . "$GITHUB_ACTION_PATH/scripts/utils.sh" diff --git a/scripts/retrieve-old-report.sh b/scripts/retrieve-old-report.sh index ee83f08..06b13bf 100755 --- a/scripts/retrieve-old-report.sh +++ b/scripts/retrieve-old-report.sh @@ -40,7 +40,9 @@ has_report() { # If a base branch is not provided, use the 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") log "Found previous run at: $url" @@ -56,13 +58,14 @@ if [ "$(in_private_repo)" != 'true' ] && [ "$JOB_NAME" ]; then exit 0 fi error "Failed to find previous report, expected at: $report_url" +else + panic 'job-name is missing, therefore we cannot find the previous report' fi -warn "Couldn't retrieve old report:" -warn ' This usuially happens when running on private repos' -warn ' or when job-name is not set.' -warn -warn ' See the README for more details' +warn "Couldn't retrieve old report: + note: This usually happens when running on private repos or when job-name is not set. + + See the README for more details" error "Falling back to slow method (checkout $base_branch and generate the report)"