Use deployments in CI
Run argos deploy from CI to create a deployment on every pull request, with a GitHub Actions Storybook example.
Running argos deploy from CI is the most common setup: a new deployment is created on every push to a pull request, and the deployment link appears in the PR comment alongside Argos visual tests.
This page walks through a GitHub Actions setup for Storybook. The same pattern works for any static build and any CI provider.
Prerequisites
A static build step that produces a directory (for Storybook:
npm run build-storybook→storybook-static/).An
ARGOS_TOKENavailable as a CI secret. You can also use OIDC or tokenless authentication to avoid managing a secret.
GitHub Actions example
name: Deploy Storybook to Argos
on:
pull_request:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 22
- run: npm ci
- run: npm run build-storybook
- run: npx --no-install argos deploy ./storybook-static
env:
ARGOS_TOKEN: ${{ secrets.ARGOS_TOKEN }}A few notes:
The workflow listens to both
pull_requestandpushtomain. Pull request runs produce preview deployments; pushes tomainproduce production deployments (becausemainmatches the default production branch pattern—see Environments).actions/checkoutgives Argos the commit SHA and branch it needs to associate the deployment with the right pull request.The
ARGOS_TOKENis the project token from Settings → General → Token.
Force a production deployment
If your production branch differs from your repository's default branch (or if you want to be explicit), pass the --prod flag:
You can keep the same workflow for both preview and production by branching on the event:
Combine with visual testing
The deploy and upload commands are independent: you can run both in the same workflow to get a deployment URL and Argos visual tests on the same commit.
Argos posts a single pull request comment that lists both the deployment URLs and the visual build results.

Status checks
Each deployment registers a commit status named argos-deploy/<project>. The status starts as pending when the upload begins and becomes success when the deployment is ready. You can require it in your branch protection rules if a missing deployment should block a merge.
Other CI providers
The argos deploy command has no GitHub-specific behavior. To run it on another CI provider:
Build your static directory in your pipeline.
Set
ARGOS_TOKENas a secret.Run
argos deploy <directory>(add--prodfor production).
Argos automatically detects the commit SHA, branch, and pull request number from the most common CI environment variables.
Related
Last updated
Was this helpful?