Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

Gradient

Nix-CI for Teams. Every flake built once, on any machine, cached for everyone.

🚀 Quick Start • 📖 Documentation • 🌐 Public Instance • 🔍 Options Search • 💬 Matrix Chat • Gradient Badge

Gradient

📸 Screenshot Gallery

https://github.com/user-attachments/assets/bd733d97-fd8b-4439-b880-04387ba1e073

Gradient evaluates and builds Nix flakes on a pool of workers, starts builds while the evaluation is still running and serves every result from a built-in binary cache.

Features

Git Host IntegrationGitHub, Gitea / Forgejo and GitLab: builds on push and pull request. Sends status checks back
Build Before PushingUncommitted changes built on the CI workers with gradient build
Built-in Binary CachePer-project caches with S3 storage, signing and sharing between projects
Scales With WorkersEvaluation and builds both run on workers; each added machine adds capacity
MCP ServerFailed builds, logs and evaluations, readable by any AI assistant
Pull DeploymentMachines fetch and switch to their latest built NixOS configuration on their own
Declarative SetupUsers, projects, caches and workers as NixOS options, validated at build time
SSO and TeamsOIDC login, SCIM provisioning, roles and invites per project and cache

CLI

Download Gradient CLI: a static Linux binary, no Nix needed. Build uncommitted changes on the CI workers:

# Install Gradient
curl -fLo gradient "https://public.gradient.ci/api/v1/tasks/gradient/main/entry-point-downloads?eval=packages.x86_64-linux.gradient-cli-static&filename=gradient"
chmod +x gradient && sudo mv gradient /usr/local/bin/
# or via Nix: nix run github:wavelens/gradient/latest#gradient-cli-full -- [flags]

gradient login https://gradient.example.com
gradient build .#hello

All commands: CLI Reference.

Compared to Hydra and GitHub Actions

HydraGitHub Actions + CachixGradient
Build startAfter the whole evaluationAfter the whole evaluationWhile the evaluation is still running
EvaluationOn the server, limited by one machineInside each job, limited by the runnerOn workers, scales with them
Evaluation speedFastSlowFastest available
Building OrderRound Robinsingle WorkerMaximum CPU Load, Minimal Network Traffic, Memory / OOM aware
Import from derivation (IFD)Not activly supportedBuilt by the runner inside the jobBuilt on the workers as shared builds, cached and logged like any build
Wildcard SupportNoNoYes
Nix storeKept on the server and buildersEmpty on every job; each job downloads its closure againKept on the workers between builds
Build outputsEverything through the serverPushed from the runner to CachixLarge outputs go from worker straight to S3
Server hostNeeds a writable Nix storeHosted by GitHubNeeds no Nix store, Micro-VM ready
Heavy buildsStatic machine list with speed factorsFixed runner sizesScoring system places them by predicted memory, learned from past builds
Remote building over SSHNot availableNot availablessh-ng:// store for nixos-rebuild --build-host and nix copy straight to the CI workers
Private cachesOne store for the whole instanceFree plan: 5 GB, filled quickly by full closuresPer-project caches with access control, on own S3 or disk storage
Sign-inLocal accounts, LDAP, OIDC with roles for the whole instanceGitHub accountsOIDC with provider groups mapped to roles per project, SCIM provisioning
IntegrationsMinimal JSON APIGitHub onlyREST API, webhooks, Git Integrations and MCP server
Web UIServer-rendered pagesGitHub job logsResponsive UI with live log streaming
RunnersNot availablebuiltinSoon; On Roadmap
Stars-

Installation

A NixOS module sets up the server, a local worker, PostgreSQL and the reverse proxy. The Quick Start walks through the setup in three steps.

For a first try on a personal repository, the Standalone instance is running everything in one container or VM:

docker run -dt --name gradient --privileged --cgroupns=host -p 127.0.0.1:8080:80 -v gradient:/var/lib ghcr.io/wavelens/gradient-standalone
# or
nix run github:wavelens/gradient/latest#standalone

Pre-built Gradient packages:

URL:        https://public.gradient.ci/cache/main
Public Key: public.gradient.ci-main:qmxRE+saUvhNa3jqaCMWje+feVU77TjABchZrPGf7A8=

API

A REST API backs the web UI and the CLI: OpenAPI spec, Swagger UI.

Roadmap

Planned releases in the Roadmap. Feedback in GitHub Discussions or on Matrix.

Contributing

Contributions are welcome: see the Contributing Guidelines and the Contributor Docs.

Project

License

AGPL-3.0-only, with license notices following the REUSE guidelines. Developed by Wavelens GmbH.

关于 About

nix-based continuous integration system
cicicdnix

语言 Languages

Rust62.5%
Nix20.2%
TypeScript11.0%
HTML2.2%
Python1.6%
SCSS1.4%
PLpgSQL1.0%
CSS0.1%
JavaScript0.0%
Shell0.0%
Typst0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
3916
Total Commits
峰值: 483次/周
Less
More

核心贡献者 Contributors