Skip to content

GH-103: run CI on GitHub-hosted runners - #104

Merged
blainemotsinger merged 2 commits into
mainfrom
GH-103
Nov 13, 2026
Merged

blainemotsinger merged 2 commits into
mainfrom
GH-103

Conversation

@blainemotsinger

Copy link
Copy Markdown
Member

Summary

Moves every workflow job off the self-hosted org runner and onto GitHub-hosted
ubuntu-latest, and removes the two dependencies on the private
renderorange/.github repository.

A public repository cannot use actions or reusable workflows hosted in a
private repository, so both are vendored into this repo:

  • .github/actions/slack-notify/ — the composite action, used by 6 steps
  • .github/workflows/pr-events.yml — the reusable workflow, called by
    slack-pr-events.yml

Both copies are byte-identical to the source apart from a provenance header
that names the original path.

Nothing in these workflows needed the self-hosted box: they are pure Go,
built with CGO_ENABLED=0, and cross-compile from any linux/amd64 host.

What changed

File Change
.github/workflows/ci.yml 3 x runs-on: self-hosted -> ubuntu-latest; 3 x Slack action vendored
.github/workflows/release.yml 4 x runs-on: self-hosted -> ubuntu-latest; 3 x Slack action vendored
.github/workflows/pr-events.yml new, vendored local reusable workflow, ubuntu-latest
.github/workflows/slack-pr-events.yml calls ./.github/workflows/pr-events.yml
.github/actions/slack-notify/ new, vendored action.yml + run.sh

grep -r "renderorange/.github" .github/ now matches only the provenance
comments.

Verification

All five workflow/action files parse as YAML, and the vendored script passes a
shell syntax check:

.github/actions/slack-notify/action.yml: ok
.github/workflows/ci.yml: ok
.github/workflows/pr-events.yml: ok
.github/workflows/release.yml: ok
.github/workflows/slack-pr-events.yml: ok
run.sh ok

The Go gates are unchanged and clean on this tree:

gofmt: clean
go vet ./...: ok
go test -count=1 ./...:
ok  	github.com/renderorange/chute	0.036s
ok  	github.com/renderorange/chute/config	0.083s
ok  	github.com/renderorange/chute/mail	0.278s
ok  	github.com/renderorange/chute/tui	0.169s

Notes and limits

  • SLACK_PIPELINE_WEBHOOK_URL and SLACK_DEVELOPMENT_WEBHOOK_URL must be
    available to this repository. Inherited org secrets have to be granted to a
    public repo explicitly; without them the jobs pass and then fail on the notify
    step.
  • The vendor is a copy. A future change to renderorange/.github will not reach
    this repo, which is the price of a public repo consuming private tooling.
  • The release workflow's version job and the release job only needed a
    runner at all because of self-hosted; both are trivial on hosted.

Closes #103

A public repository cannot use actions or reusable workflows hosted in
a private repository, so vendor slack-notify and pr-events instead of
reaching into renderorange/.github. Every job moves to ubuntu-latest;
nothing here needed the self-hosted box.
@blainemotsinger blainemotsinger self-assigned this Nov 13, 2026
A reusable workflow gets no checkout of its own, so the vendored
composite action could not be resolved. Found by the first run of the
new workflow.
@blainemotsinger
blainemotsinger merged commit 3ee7abc into main Nov 13, 2026
3 checks passed
@blainemotsinger
blainemotsinger deleted the GH-103 branch November 13, 2026 15:03
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.

run CI on GitHub-hosted runners and vendor the Slack notify action

1 participant