Skip to content

ci: put pip --user conan on PATH for self-hosted Linux runners (fix exit127) - #590

Merged
frstrtr merged 1 commit into
masterfrom
ci-steward/conan-localbin-path
Jun 28, 2026
Merged

ci: put pip --user conan on PATH for self-hosted Linux runners (fix exit127)#590
frstrtr merged 1 commit into
masterfrom
ci-steward/conan-localbin-path

Conversation

@frstrtr

@frstrtr frstrtr commented Jun 27, 2026

Copy link
Copy Markdown
Owner

Fixes the conan: command not found / exit 127 failures on the self-hosted Linux runners (VM905, c2pool-linux-905-*), seen on DGB #589 @3a3a2ab47 and reported by dgb-scrypt-steward.

Root cause: the Install Conan step runs pip install "conan>=2.0,<3.0". On Ubuntu 24.04 (PEP 668) that lands the conan entry point in ~/.local/bin, which is NOT on the self-hosted runner service non-interactive PATH, so the next step (conan profile detect) gets command-not-found. GitHub-hosted runners pre-path ~/.local/bin, which is why only self-hosted Linux legs failed while Windows/macOS (other runners) passed.

Fix: append $HOME/.local/bin to $GITHUB_PATH right after install so conan resolves in every later step regardless of runner login PATH. This is baked into the workflow, so it survives runner restarts/reprovisioning (addresses the harden ask). Same idiom already used for Homebrew on macpro-intel-204.

Scope: Linux legs only across build.yml (linux, linux-asan, coin-bch, coin-bch-asan, coin-dgb-auxdoge), coin-matrix.yml, release.yml, codeql-analysis.yml. Windows (windows-2022) and macOS conan steps deliberately untouched. codeql installs+detects in one step so it also exports PATH inline.

Merge-gated: awaiting push-approval. Note: re-running #589 will need it rebased onto merged master, since a re-run reuses the PR own workflow version.

The Install Conan step runs pip install "conan>=2.0,<3.0", which on the
self-hosted Linux runners (Ubuntu 24.04, PEP 668) lands the conan entry
point in ~/.local/bin. That dir is not on the runner service's
non-interactive PATH, so the next step (conan profile detect) fails with
conan: command not found / exit 127. GitHub-hosted runners pre-path
~/.local/bin, which is why only the self-hosted Linux legs broke.

Append $HOME/.local/bin to $GITHUB_PATH right after install so conan
resolves in every later step regardless of runner login PATH. Same idiom
already used for Homebrew on the macOS Intel runner. Linux legs only;
Windows/macOS conan steps unchanged. codeql installs and detects in one
step, so it also exports PATH inline.
@frstrtr
frstrtr merged commit a34e58b into master Jun 28, 2026
21 checks passed
@frstrtr
frstrtr deleted the ci-steward/conan-localbin-path branch June 28, 2026 00: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