New · CI/CD & DevOps
Build, test and deploy on every git push
The same pipelines run your software delivery. A push to GitHub or GitLab starts a run; the code is checked out on a build agent, built and tested, packaged, and deployed to a protected environment after approval — and the result shows up on the commit. Start from the ready-made Build & deploy template, pick your agents and adjust the commands.
- Git webhooks. Signed GitHub and GitLab webhooks (or any system with a token) start a run for the branches and events you choose; branch, commit and author are available to every step.
- Workspaces & Git checkout. Each run gets its own working folder on every agent it uses, shared by its checkout, build and test steps, and cleaned up afterwards. Private repositories authenticate with a token that never appears on a command line.
- Secrets. Tokens and passwords are stored encrypted, reach scripts only as environment variables, and show as *** in the output.
- Test results. JUnit XML from JUnit, pytest, Jest, .NET or Go becomes totals and failures with stack traces on the run page; failed tests fail the pipeline.
- Artifacts. Publish a build's output once and fetch it on any agent later in the run — build on one server, deploy on another — or download it from the run page.
- Protected environments. Production only accepts allowed branches, waits for its approvers, gets its own secrets, and keeps a deploy history of what is live now.
- Concurrency groups. One deploy per environment at a time: a newer run queues, cancels the older one, or is skipped.
- Status on the commit. Each run reports pending, success or failure back to GitHub or GitLab, linked to the run.
- Live logs. Watch a build's output as it runs, with the newest lines followed.
name: web-app
workspace: {clean: on_success}
concurrency: {group: "deploy-${inputs.branch}"}
steps:
- id: checkout
type: tool
tool: git_checkout
agent: build-01
args: {repo: "https://github.com/acme/web.git",
ref: "${trigger.commit}"}
- id: build
type: command
agent: build-01
needs: [checkout]
script: npm ci && npm test && npm run build
- id: package
type: tool
tool: publish_artifact
agent: build-01
needs: [build]
args: {name: web, path: dist}
- id: deploy
type: tool
tool: fetch_artifact
agent: web-01
needs: [package]
environment: production
args: {name: web, destination: /srv/www}