From f316fba81e4faf72c218a2cee17d950497b7bf29 Mon Sep 17 00:00:00 2001 From: James Kessler Date: Mon, 27 Jul 2026 13:57:41 -0700 Subject: [PATCH 1/4] Add manual smoke test: published @v2 action on macOS runners Exercises the full end-user chain from issue #264: the published v2 tag -> brew install of the coverallsapp/coveralls formula under Homebrew 6 tap trust -> coverage-reporter binary -> report upload, with fail-on-error and no error masking. Co-Authored-By: Claude Fable 5 --- .github/workflows/smoke-test-v2.yml | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/smoke-test-v2.yml diff --git a/.github/workflows/smoke-test-v2.yml b/.github/workflows/smoke-test-v2.yml new file mode 100644 index 00000000..460cf2a7 --- /dev/null +++ b/.github/workflows/smoke-test-v2.yml @@ -0,0 +1,38 @@ +name: Smoke Test v2 (macOS end-user chain) + +on: workflow_dispatch + +jobs: + smoke: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [macos-latest, macos-15] + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Create minimal lcov coverage fixture + run: | + mkdir -p coverage + { + echo "SF:action.yml" + echo "DA:1,1" + echo "DA:2,1" + echo "DA:3,0" + echo "end_of_record" + } > coverage/lcov.info + + - name: Run published action as an end user would (issue 264 scenario) + uses: coverallsapp/github-action@v2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + file: coverage/lcov.info + fail-on-error: true + debug: true + + - name: Verify installed coverage-reporter binary + run: | + which coveralls + coveralls --version From cd3f408141e1d62aba3fa772ba5f7893bb66dafa Mon Sep 17 00:00:00 2001 From: James Kessler Date: Mon, 27 Jul 2026 13:58:09 -0700 Subject: [PATCH 2/4] Trigger smoke test on push to this branch --- .github/workflows/smoke-test-v2.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/smoke-test-v2.yml b/.github/workflows/smoke-test-v2.yml index 460cf2a7..732d3d62 100644 --- a/.github/workflows/smoke-test-v2.yml +++ b/.github/workflows/smoke-test-v2.yml @@ -1,6 +1,9 @@ name: Smoke Test v2 (macOS end-user chain) -on: workflow_dispatch +on: + workflow_dispatch: + push: + branches: [smoke-test-v2] jobs: smoke: From 2f7c041db50906784c5c7adc81522b6c8c5615f8 Mon Sep 17 00:00:00 2001 From: James Kessler Date: Mon, 27 Jul 2026 14:13:11 -0700 Subject: [PATCH 3/4] Generalize smoke test to all supported platforms Extend the macOS-only smoke test to ubuntu-latest, windows-latest, macos-latest and macos-15, covering all three install paths of the published action (Homebrew on macOS, GitHub-release binary download on Linux and Windows). Co-Authored-By: Claude Fable 5 --- .../{smoke-test-v2.yml => smoke-test.yml} | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) rename .github/workflows/{smoke-test-v2.yml => smoke-test.yml} (57%) diff --git a/.github/workflows/smoke-test-v2.yml b/.github/workflows/smoke-test.yml similarity index 57% rename from .github/workflows/smoke-test-v2.yml rename to .github/workflows/smoke-test.yml index 732d3d62..0dbc4e39 100644 --- a/.github/workflows/smoke-test-v2.yml +++ b/.github/workflows/smoke-test.yml @@ -1,9 +1,15 @@ -name: Smoke Test v2 (macOS end-user chain) +name: Smoke Test (published action) + +# Verifies the full end-user chain of the *published* v2 tag on every +# supported platform: action resolution -> reporter install (Homebrew on +# macOS, GitHub-release download on Linux/Windows) -> report upload. +# Run it from the Actions tab after a release, a Homebrew major, or a +# runner-image update. on: workflow_dispatch: push: - branches: [smoke-test-v2] + branches: [smoke-test-v2] # temporary, for pre-merge validation; removed before merge jobs: smoke: @@ -11,12 +17,13 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-latest, macos-15] + os: [ubuntu-latest, macos-latest, macos-15, windows-latest] steps: - name: Checkout uses: actions/checkout@v4 - name: Create minimal lcov coverage fixture + shell: bash run: | mkdir -p coverage { @@ -27,7 +34,7 @@ jobs: echo "end_of_record" } > coverage/lcov.info - - name: Run published action as an end user would (issue 264 scenario) + - name: Run published action as an end user would uses: coverallsapp/github-action@v2 with: github-token: ${{ secrets.GITHUB_TOKEN }} @@ -36,6 +43,7 @@ jobs: debug: true - name: Verify installed coverage-reporter binary + shell: bash run: | which coveralls coveralls --version From 62526b2d411e64e118ac7f830fb17bcd3bebbffa Mon Sep 17 00:00:00 2001 From: James Kessler Date: Mon, 27 Jul 2026 14:14:38 -0700 Subject: [PATCH 4/4] Smoke test: drop temporary push trigger, document manual runs Co-Authored-By: Claude Fable 5 --- .github/workflows/smoke-test.yml | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/.github/workflows/smoke-test.yml b/.github/workflows/smoke-test.yml index 0dbc4e39..903db92d 100644 --- a/.github/workflows/smoke-test.yml +++ b/.github/workflows/smoke-test.yml @@ -3,16 +3,25 @@ name: Smoke Test (published action) # Verifies the full end-user chain of the *published* v2 tag on every # supported platform: action resolution -> reporter install (Homebrew on # macOS, GitHub-release download on Linux/Windows) -> report upload. -# Run it from the Actions tab after a release, a Homebrew major, or a -# runner-image update. +# Runs automatically after each release (once the v2 tag has been moved +# by the Update Major Version Tag workflow). +# +# Run it manually after any change worth sanity-checking against the +# published action -- e.g. a Homebrew major version, a runner-image +# update, or an action update -- either way: +# - GitHub UI: Actions tab -> "Smoke Test (published action)" -> +# "Run workflow" -> keep branch "main" -> green "Run workflow" button +# - CLI: gh workflow run smoke-test.yml --repo coverallsapp/github-action on: workflow_dispatch: - push: - branches: [smoke-test-v2] # temporary, for pre-merge validation; removed before merge + workflow_run: + workflows: ["Update Major Version Tag"] + types: [completed] jobs: smoke: + if: github.event_name != 'workflow_run' || github.event.workflow_run.conclusion == 'success' runs-on: ${{ matrix.os }} strategy: fail-fast: false