From 4898b86eeb76570dd648973e1145681730a71e91 Mon Sep 17 00:00:00 2001 From: Pedro Sanders Date: Tue, 3 Nov 2026 21:32:54 -0400 Subject: [PATCH] fix(ci): read the caller's perf config from the calling commit, not the commit under test A Routr release tag (the commit under test) can predate perf/, so the start job failed with 'cannot read: no such file'. --commit still reports the commit under test. --- .github/workflows/run.yaml | 5 ++++- docs/github-workflow.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/run.yaml b/.github/workflows/run.yaml index eb0b743..095f334 100644 --- a/.github/workflows/run.yaml +++ b/.github/workflows/run.yaml @@ -62,9 +62,12 @@ jobs: outputs: run-id: ${{ steps.run.outputs.run-id }} steps: + # The caller's perf config comes from the commit that called this workflow, not from the + # commit under test: a release tag can predate the config. --commit still reports the + # commit under test. - uses: actions/checkout@v4 with: - ref: ${{ inputs.commit }} + ref: ${{ github.sha }} - uses: actions/setup-node@v4 with: node-version: 22 diff --git a/docs/github-workflow.md b/docs/github-workflow.md index d0c602e..78ae2d0 100644 --- a/docs/github-workflow.md +++ b/docs/github-workflow.md @@ -31,7 +31,7 @@ adds that machine's IP to the run's firewall before it logs in, with `PERFKIT_SS | `perfkit-ref` | required | The perfkit tag the workflow is called at, like `v0.1.0`; the jobs run that perfkit (`npx -y github:fonoster/perfkit#`). A reusable workflow can't see its own ref, so pass the same tag as in `uses:`. | | `config` | `perf/perfkit.yaml` | The project's perfkit.yaml. | | `target-version` | required | The image tag under test, like `2.31.5`. | -| `commit` | required | The commit under test; `start` checks it out. | +| `commit` | required | The commit under test, written to report.json. The `perf/` config is read from the commit that called the workflow (`github.sha`), because a release tag under test can predate the config. | | `benchmarks` | empty | Comma-separated benchmark ids; empty runs them all. | | Secret | Meaning | diff --git a/package-lock.json b/package-lock.json index 4a4b59b..5f62385 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "perfkit", - "version": "0.1.0", + "version": "0.1.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "perfkit", - "version": "0.1.0", + "version": "0.1.1", "license": "MIT", "dependencies": { "commander": "^14.0.3", diff --git a/package.json b/package.json index 7b42477..2b00969 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "perfkit", - "version": "0.1.0", + "version": "0.1.1", "description": "Benchmark harness for Fonoster projects: DigitalOcean runs, one report.json schema, one branded report page", "license": "MIT", "author": "Pedro Sanders ",