Automation
Connect a runner
konnos Actions is Stage 2: self-hosted runners, workflows on push (and pull request), logs in the UI, secrets/variables, plus cancel and re-run on a finished run. Not a marketplace — shell steps you control.
What works today — and what does not
Does: register runners, discover workflows on push and pull_request, claim jobs, show logs, list runs, cancel a running/queued run, re-run a finished workflow, and inject account secrets and variables into job steps. PR pages show a checks strip when runs exist.
Does not (yet): matrix builds, marketplace actions, or hosted runners. Keep workflows to plain shell steps.
1. Register a runner
- 1
Open Runners in settings
Sign in, go to Settings → Actions → Runners, and register a runner with a short name (for example
laptop-linux). - 2
Copy the one-time token
After register, konnos shows a token once. Copy it — it cannot be recovered later. If you lose it, remove the runner and register a new one.
- 3
Start konnos-runner
On the machine that will run jobs, build and start the runner binary with that token:
cd apps/runner go build -o konnos-runner . ./konnos-runner --server https://code.konnos.org --token <your-token>Leave it running. When it is online, the Runners page shows Online (last poll within about a minute).
2. Add a workflow
Put a YAML file under .konnos/workflows/ or .github/workflows/. Stage 1 only runs workflows that trigger on push, and only shell steps (run:).
# .konnos/workflows/hello.yml
name: Hello
on: push
jobs:
greet:
runs-on: self-hosted
steps:
- name: Say hello
run: echo "hello from konnos Actions"3. Push and watch
Push to a branch. The engine creates a run; your online runner claims the job, clones the repo, runs each step, and streams logs back.
Open the repository's Actions tab to see runs, then open a run for job logs. If a run stays queued, check that the runner is still online.
Private repositories
By default the runner uses whatever git credentials already exist on the host. For private repos you can pass --git-token (and optionally --git-user) so the clone URL can authenticate over HTTPS.
Secrets and variables
Secrets store sensitive values (encrypted, never shown again after save). Variables store plain config you can still see and edit. Both become environment variables on the runner; if the same name exists in both, the secret wins.
# .konnos/workflows/with-env.yml
name: With env
on: push
jobs:
check:
runs-on: self-hosted
steps:
- name: Use a variable
run: echo "region=$DEPLOY_REGION"
- name: Check a secret is set (do not echo real tokens in public logs)
run: test -n "$API_TOKEN" && echo "secret is set"Where things live in the UI
- Settings → Runners — register / remove runners
- Settings → Secrets — encrypted env values (hidden after save)
- Settings → Variables — non-secret env values (visible)
- Repository → Actions — list runs and open logs