Runs from a computer
Run a workflow's jobs on your own machines from your computer or a coding agent, with the working tree as it is and nothing pushed.
Run a workflow’s jobs on your SuperCI machines without pushing. You, or a coding agent, see whether CI would pass before anything leaves your computer.
superci runs create --workflow=.github/workflows/ci.yml
superci runs create --workflow=.github/workflows/ci.yml --job=test # that job and those it needsThe command waits for the run and prints its jobs’ lines. It fails when the run does.
What goes along
The working tree as it is on your computer: what git tracks, and the new files it does not ignore. An ignored .env stays behind. Nothing is pushed.
It goes through your control plane, so there is no new resource or permission in your cloud. It is kept there only until the run’s jobs have fetched it.
How it runs
As GitHub runs it. GitHub’s own runner runs the steps: actions, service containers, expressions, step outputs.
- Each combination of a matrix is a job of its own, on the machine its
runs-onsays. - A job starts once the jobs it
needshave ended, and runs if itsifholds (by default, if they all succeeded). It knows their results and outputs. - Jobs use the cache as CI’s do: they read their branch’s and the default branch’s caches, and write a scope of their own, so a run from a computer never changes what CI finds.
upload-artifactin one job anddownload-artifactin the next work as on GitHub. Artifacts are kept for a day.
Getting artifacts back
What its jobs kept with upload-artifact can be fetched to your computer:
superci artifacts list --run=ID # each artifact's name and size
superci artifacts retrieve coverage --run=ID # unpacked into ./coverage, as download-artifact would
superci artifacts retrieve coverage --run=ID --out=build/coverageThe run’s id is printed when it starts, and is in superci runs list. A run of GitHub’s keeps its artifacts at GitHub: gh run download fetches those.
What GitHub would give it
Give it on the command line instead:
superci runs create --workflow=.github/workflows/ci.yml \
--secret=DATABASE_URL=postgres://… --var=REGION=eu \
--event=pull_request--secretis hidden in the job’s lines as GitHub hides secrets, and not kept once the job has ended.--event=pull_requestwhen the workflow does something else for one; push unless given.- There is no
GITHUB_TOKENand no OIDC.
Following it
Its jobs are listed with the others (superci jobs list, Runs), with their machines and their cost. A run from a computer has no page at GitHub, so its page in the dashboard shows how each job stands and its log.
A key for coding agents
An agent on your own computer can use SuperCI’s sign-ins as they are. For one elsewhere, or one you want to keep from changing anything, give it a key:
superci keys create agent --runs
SUPERCI_PLANE=https://… SUPERCI_KEY=superci_… superci runs create --workflow=.github/workflows/ci.ymlThe key reads, starts runs from a computer and fetches their artifacts, and changes nothing else. It has no limits of its own: its jobs keep to your control plane’s, as every job does, the largest machine and what may be spent in a month and a day (superci limits update --max-cpu=64 --daily-usd=50).
Not yet
A call of another workflow, and a matrix made by an expression. actions/checkout puts the working tree in place as one commit; another repository is not checked out.