Skip to content

fix(attest): export install path so verify steps can find cimon#121

Merged
ronens88 merged 1 commit into
mainfrom
fix/attest-export-cimon-path
May 17, 2026
Merged

fix(attest): export install path so verify steps can find cimon#121
ronens88 merged 1 commit into
mainfrom
fix/attest-export-cimon-path

Conversation

@ronens88
Copy link
Copy Markdown
Contributor

Summary

#114 scoped the action's install directory to \$RUNNER_TEMP/cimon-<run_id>-<run_attempt>-<job>/ as a security fix, but the docs and the customer-facing demo workflow still hardcode the pre-#114 path \$RUNNER_TEMP/cimon/. A naive cimon.exe attest verify step following the action now fails with cimon.exe not found.

Fix: expose the install path three ways so workflows never reconstruct the per-job tmpdir layout:

  1. core.addPath(dir)cimon / cimon.exe resolves on PATH in the same job.
  2. CIMON_PATH env var — absolute path, for callers that bypass PATH (locked-down self-hosted runners).
  3. step output cimon-path — chains cleanly into other jobs via \${{ steps.<id>.outputs.cimon-path }}.

Applies to all three install branches (Windows release-zip, Linux install.sh, and the release-path input override).

After this lands

The docs verify step in docs/provenance/3-integrations/9-windows-ghes.md and the demo workflow collapse from:

pwsh \$exe = Join-Path \$env:RUNNER_TEMP 'cimon\cimon.exe' & \$exe attest verify ...

to just:

pwsh cimon.exe attest verify ...

Test plan

  • ncc rebuild of attest/dist/index.js succeeds
  • verify-attest-windows job in this PR's CI passes (and now exercises the new behavior end-to-end on windows-latest)
  • After merge: cut v1.0.1, move @v1, then update demo + docs to drop the path construction

🤖 Generated with Claude Code

PR #114 scoped the action's install directory to
$RUNNER_TEMP/cimon-<run_id>-<run_attempt>-<job>/ as a security fix, but
the docs + customer-facing demo workflow still hardcode the pre-#114
path of $RUNNER_TEMP/cimon/. A naive `cimon.exe attest verify` step
following the action now fails with "cimon.exe not found".

Surface the install path three ways so workflows can pick whichever
fits their pattern without ever reconstructing the per-job tmpdir
layout:

  1. core.addPath(dir) — `cimon` / `cimon.exe` resolves on PATH for
     plain `run:` steps in the same job.
  2. CIMON_PATH env var — absolute path, for callers that bypass PATH
     (locked-down self-hosted runners).
  3. step output cimon-path — chains cleanly into other jobs via
     ${{ steps.<id>.outputs.cimon-path }}.

Applies to all three install branches (Windows release-zip, Linux
install.sh, and the release-path input override).

After this lands, the docs example collapses from

  $exe = Join-Path $env:RUNNER_TEMP 'cimon\cimon.exe'
  & $exe attest verify ...

to just

  cimon.exe attest verify ...

— which is also what every other Marketplace action does.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ronens88 ronens88 merged commit a0870cc into main May 17, 2026
7 checks passed
@ronens88 ronens88 deleted the fix/attest-export-cimon-path branch May 17, 2026 09:11
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.

2 participants