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}