Skip to content

Fix action install on GitHub runners and document Ruby prerequisites - #136

Merged
TonyCTHsu merged 10 commits into
masterfrom
tonyc.t.hsu/fix-action-install-latest
Nov 8, 2026
Merged

TonyCTHsu merged 10 commits into
masterfrom
tonyc.t.hsu/fix-action-install-latest

Conversation

@TonyCTHsu

@TonyCTHsu TonyCTHsu commented Nov 8, 2026 •

Copy link
Copy Markdown
Owner

Why is this change needed?

The action fails on GitHub-hosted runners. The install step reads github.action_ref where the runner leaves it empty (#133), then passes latest to gem install --version, which is not a valid requirement. With the version supplied, the install still lands in a user gem dir that is not on PATH, so the lint step dies with se: command not found (#135). Local Mac installs hit the same wall with the 2.6 system Ruby, and non-Ruby users had no guide past it.

What does this change do?

  • Fix the install step: read the action ref through env, omit --version when no concrete version is known, pin GEM_HOME to a runner temp dir, and put its bin on GITHUB_PATH for the lint step.
  • Document prerequisites in the README Install section: the Ruby 3.3 floor, the brew install ruby path with the PATH exports, and version managers as an alternative.
  • Add changie fragments for both action fixes.
  • Dogfood the action in CI with a local uses: ./ job, so the install step runs on a real hosted runner on every PR.

Fixes #135. Refs #133 (fixed in #134).

GitHub-hosted runners make the system gem dir unwritable, so gem
install falls back to a user dir that is not on PATH and the lint
step cannot find se (#135). Pin GEM_HOME to
a temp dir and append its bin to GITHUB_PATH.
The action runs the runner ruby and gem. Say so in the README, and warn
self-hosted users off the macOS system Ruby, which is 2.6 and older
than the supported floor.
The action just works on its runners, so it needs no runner note. The
system Ruby warning belongs where a local, non-Ruby engineer hits it:
right under gem install, pointing at the Homebrew install as the easy
path.
Prefer the gem install over the Homebrew tap. On a Mac without Ruby,
the note now builds the path: brew install ruby, put the directories
brew info ruby lists on PATH, then install the gem.
…ve brew install ruby as one example path, and\nname version managers as the alternative. Tell, do not explain.
Pointing at brew caveats leaves the reader translating. Show the three
export lines: brewed ruby, a stable GEM_HOME, and its bin dir. The
paths never change with a Ruby upgrade.
Review call: the symptom and its condition carry the entry; the
corrected behavior restates what a fix obviously does.
A local uses: ./ run executes the install step on a real hosted runner,
where the version resolution and PATH wiring actually live. Both fixed
bugs would have failed this job.
The se bin stub resolves the gem through RubyGems paths, which do not
include the temp GEM_HOME outside the install step. The dogfood job
caught this: se was on PATH but the gem was not found. GITHUB_ENV
carries the home forward.
The env file command rejects a bare value. The previous push failed the
dogfood job at the install step.
@TonyCTHsu
TonyCTHsu marked this pull request as ready for review November 8, 2026 22:00
@TonyCTHsu
TonyCTHsu merged commit eeb9d2f into master Nov 8, 2026
16 checks passed
@TonyCTHsu
TonyCTHsu deleted the tonyc.t.hsu/fix-action-install-latest branch November 8, 2026 22:01
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.

Lint step fails: se command not found — gem bin dir never added to PATH

1 participant