Skip to content

fix(tests): the signing pins assert the guarantee where #558 moved it, and one they missed - #559

Merged
eaitbrahim merged 1 commit into
mainfrom
fix-signing-pins
Aug 26, 2026
Merged

fix(tests): the signing pins assert the guarantee where #558 moved it, and one they missed#559
eaitbrahim merged 1 commit into
mainfrom
fix-signing-pins

Conversation

@eaitbrahim

Copy link
Copy Markdown
Contributor

main is red because I merged #558 without running the suite. This fixes it.

What broke

Three tests in tests/test_desktop_packaging.py assert the signing gates by looking for
secrets.X != '' inside each step's if: — the exact expression #558 had to remove, because
GitHub rejects the secrets context in an if: at parse time.

The guarantee is unchanged and still pinned: all five Apple credentials or none, both Windows
credentials or none, and each skip notice firing on the exact complement of its sign step. What
moved is where that is decided — from four if: conditions into one signing step whose outputs
the conditions read — so the assertions move with it.

And a pin for the failure these tests could not see

The old tests asserted that a string appeared in a condition. That says nothing about whether
GitHub can parse the file, which is exactly why they stayed green for the three days the
workflow was undispatchable. Two new pins close that gap:

  • No secrets in any if:, in any job or step — the thing that made the whole workflow
    invalid.
  • No signing credential in a job-level env: — the obvious fix for the first one, and the
    wrong one, because it exposes every certificate to uv sync, the PyInstaller build, and every
    other step in the job. That is the exposure the signing environment exists to prevent.

Verification

Full suite green (4274 passed, 3 skipped), ruff and mypy clean.

All three pins mutation-checked — a test that cannot fail is not a pin:

mutation result
restore secrets.WINDOWS_CERT_PASSWORD != '' to an if: 2 tests fail
drop APP_STORE_CONNECT_ISSUER_ID from the gate step 1 test fails
hoist MACOS_CERT_PASSWORD to job-level env: 1 test fails

The process failure, recorded

I validated #558's YAML, checked its structure, and let GitHub's own parser confirm the fix — and
did not run pytest, because it was "only a workflow file". This repository pins its workflows
with tests; that is the entire reason those three existed. The suite is not optional on a
workflow change here, and I'll treat it that way.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T6yA5khYnJ2qzheArRToQ2

…, and one they missed

`main` is red because I merged #558 without running the suite. Three tests in
`test_desktop_packaging.py` assert the signing gates by looking for
`secrets.X != ''` inside each step's `if:` -- the exact expression #558 had to
remove, because GitHub rejects `secrets` in an `if:` at parse time.

The GUARANTEE is unchanged and is still pinned: all five Apple credentials or
none, both Windows credentials or none, and each skip notice firing on the exact
complement of its sign step. What moved is where that is decided -- from four
`if:` conditions into one `signing` step whose outputs the conditions read -- so
the assertions move with it.

── AND A PIN FOR THE FAILURE THESE TESTS COULD NOT SEE ────────────────────────

The old tests asserted that a string appeared in a condition. That says nothing
about whether GitHub can PARSE the file, which is why they were green for the
three days the workflow was undispatchable. Two new pins close that:

  * no `secrets` in any `if:`, in any job or step -- the thing that made the
    whole workflow invalid;
  * no signing credential in a job-level `env:` -- the obvious fix for the first
    one, and the wrong one, because it exposes every certificate to `uv sync`,
    the PyInstaller build and every other step in the job.

All three are mutation-checked: restoring a secret to an `if:` fails two tests,
dropping one credential from the gate fails a third, and hoisting a secret to
job-level env fails the fourth.

── THE PROCESS FAILURE, RECORDED ──────────────────────────────────────────────

I validated #558's YAML, checked its structure, and let GitHub's own parser
confirm the fix -- and did not run `pytest`, because it was "only a workflow
file". This repository pins its workflows WITH tests; that is the whole reason
those three existed. The suite is not optional on a workflow change here.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T6yA5khYnJ2qzheArRToQ2
@eaitbrahim
eaitbrahim merged commit 1470325 into main Aug 26, 2026
4 checks passed
@eaitbrahim
eaitbrahim deleted the fix-signing-pins branch August 26, 2026 21:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant