Dutest
Sign in Sign up

What Dutest does

Plans and stages
Stages run in order. Jobs within a stage run in parallel, each on one agent, and every step of a job shares that agent's workspace.
Agents
Connect out over gRPC and advertise what they can do. A job is only offered to an agent that satisfies its requirements.
Runtimes
Native subprocesses, or a Docker container per job.
Artifacts
Produced by one stage, consumed by a later one, downloadable from the build page, and hashed on the way in so their provenance is signed.
Tests
Read from JUnit XML, with history and quarantine. A case is labelled against the last run of its job, so a regression stands out from what was already failing.
Deployments
Named releases sent to an ordered set of environments, with their own permissions. A plan can ship itself.
Secrets
Encrypted at rest, scoped from global down to one environment, never readable back through the API, and struck out of build output on the agent.
Permissions and audit
Projects, plans, deployment projects and environments, for local accounts, OIDC users and groups, and API tokens. Everything anyone changed is on an append-only trail.