Repository navigation
| Field | Value |
|---|---|
| Licence | Free (MIT) |
| Maturity | implemented (maturity levels) |
| Version | 1.2.11 |
| Install | nself plugin install ci |
| Commands |
nself ci: build, forgejo, nodes provision, nodes verify, run, serve
|
| Requirements | nSelf >=1.4.12 |
Runs the local lint/test/build/gitleaks gate and posts the result as a GitHub commit status.
nself plugin install ciNo license key required.
Local CI gate runner: detects repo stack (Go/Node/Flutter/Dart), runs lint+test+build, scans secrets with gitleaks, then posts a GitHub commit status (nself-ci) via gh OAuth. Replaces billing-blocked GitHub Actions as the merge gate.
This is a CLI plugin: it installs the nself-ci binary into your plugin path and runs as a command, not a background service.
Category: development. Current version: 1.0.1.
| Env Var | Default | Description |
|---|---|---|
NSELF_CI_REPO |
(see plugin.json) | Optional. |
NSELF_CI_SHA |
(see plugin.json) | Optional. |
NSELF_CI_SKIP_STATUS |
(see plugin.json) | Optional. |
NSELF_CI_TIMEOUT |
(see plugin.json) | Optional. |
nself-ciThe nself-ci binary accepts the exact argv of core nself ci:
| Command | Description |
|---|---|
nself-ci [flags] [repo-root] |
Run the gate. Flags: --check, --no-status, --no-gitleaks, --sha, --owner, --repo, -v, --filesystem. |
nself-ci build [flags] [dir] |
Build a signed Android release artifact locally; --upload --tag T attaches it to a GitHub release. |
nself-ci forgejo [--url U] [--runner R] |
Forgejo server and runner health (ops profile). |
nself-ci serve [flags] |
Webhook listener daemon on port 3845; fail-closed (secret, allowlist, Docker). |
nself-ci run [flags] [search-root] |
Run the .ci.yaml pipeline. |
The manifest is v2 with a commands block (command: ci, binary: nself-ci). ci eval is not part of this plugin. The runner host commands are below.
Ported from core nself runner provision|verify (P7-CANON-10) with the same flags, messages and exit codes. Both are dispatched as nself ci nodes <verb> or nself-ci nodes <verb>. The dependency set is one declarative manifest compiled into the binary, so a freshly provisioned host and a "should be identical" host are checked against the same list.
| Command | Description |
|---|---|
nself-ci nodes verify [--host user@host]... [--ssh-key K] [--json] |
Check each host against the manifest (packages, a real _work directory, cached Chromium libraries) and print a parity matrix. No --host checks this machine. Exits 1 on a failing check, an unreachable host or drift between hosts. |
nself-ci nodes provision --github-url U [--host user@host] [--instances N] [--install-root D] [--labels a,b] [--ssh-key K] [--token T] |
Install the dependencies, create the runner user with passwordless sudo, ensure a real _work directory and register N runner instances as systemd services. Every step is idempotent. No --host provisions this machine. |
- The registration token comes from
--tokenor theGITHUB_RUNNER_TOKENenvironment variable, never from a project.env, and is never printed. -
provisiontakes at most one--hostper run, and refuses a_workthat is a symlink. - Every ssh call goes through the vendored cli
sdk/go/remote(one exec funnel, destination allowlist,--before the destination). A test (TestSingleSSHExecSite) fails if free/ci gains a second ssh or scp exec site. - Exit status follows core: 1 for a refusal or a failed step, or the status of the failed ssh or remote command (255 for a connection error).
-
scripts/parity-nodes.shcompares stdout, stderr, exit code, the ssh argv and the commands a stubbed host recorded against a core build, using disposable local sshd containers only.
Manifest: plugins/ci/plugin.json
- Forgejo — self-hosted git + Actions runner
- GitHub-Runner — self-hosted GitHub Actions runner
← Home →
- Commands
- File Processing Commands
- GitHub Commands
- ID.me Commands
- Jobs Commands
- Notifications Commands
- Realtime Commands
- Shopify Commands
- Stripe Commands
View All: Home (or see the full alphabetical list below — 129/129 synced with registry.json)
- Access-Controls
- Admin-Api
- AI-CLI
- AI-Studio
- Alerts
- Analytics
- API
- Audit
- Audit-Analytics
- Audit-Log
- Auth-Enterprise
- Backup
- BYOK
- CDC
- CDN
- CI
- Claw-CLI
- Cloudflare
- Compliance
- Content-Acquisition
- Content-Progress
- Content-Safety
- Costs
- CRDT
- Cron
- DDNS
- Devices
- DLQ
- Documents
- Dogfood
- Donorbox
- DR
- E2EE
- Encryption
- Entitlements
- Event-Bus
- Family-Ancestry
- Family-FamilySearch
- Family-GEDCOM
- Family-MyHeritage
- Family-WikiTree
- Feature-Flags
- Federation
- File-Processing
- Flags
- Forgejo
- Functions-V8
- Game-Metadata
- Gateway
- Gauth
- GDPR
- Geocoding
- GitHub
- GitHub-Runner
- HIPAA
- Home
- IDme
- Infra
- Invitations
- Job-Queue
- Jobs
- K8s
- Link-Preview
- Maintenance
- MDNS
- Media-Processing
- Meetings
- MLflow
- Model
- Monitor
- Monitoring
- Notifications
- Notify
- nSelf-Cloud
- nSelf-Eval-Gate
- nSelf-Geo
- nSelf-Image
- nSelf-PDF
- nSelf-Scan
- nSelf-Sync
- nSelf-Vault
- Object-Storage
- Observability
- Ollama
- Payments
- PayPal
- Pentest
- Pentest-Kit
- Plugin-ClawDE
- Plugin-Gauth
- Plugin-LLM-Gateway
- Plugin-PTY
- Plugin-Retrieval
- Podcast
- Post
- Push
- Queue
- Region
- Release
- Retro-Gaming
- Rom-Discovery
- Search
- Sentry-CLI
- Shared-Utils
- Shopify
- SIEM
- SMS
- Soak
- Sports
- Storage
- Stripe
- Subtitle-Manager
- Tenant
- Tenant-Controller
- TMDB
- Tokens
- Torrent-Manager
- Traefik
- Transactional-Email
- VPN
- WAF
- Watchdog
- Web3
- Webhooks
- Workflows
Related