Deploying

Deploy, inspect, roll back, and destroy stages through the hosted control plane.

Deploy & redeploy

laminar deploy <stage> is idempotent — run it again to redeploy. The CLI packages your project, uploads the artifact, and asks the Laminar API to create or update the stage.

laminar deploy dev
laminar deploy production
LAMINAR_API_TOKEN=... laminar deploy production

Runtime updates

Runtime-specific settings belong in laminar.yml. The CLI sends them to the backend, which owns AWS orchestration and records the deployment state.

target: fargate
image: <account>.dkr.ecr.us-east-1.amazonaws.com/service:tag
strategy: rolling

Rollback

laminar rollback production
laminar rollback production --version <version>

Rollback support depends on the deployed target and available prior version recorded by the backend.

Stages

Each environment is a stage with its own config (see Configuration).

laminar environments        # list configured stages
laminar add staging         # add a stage to laminar.yml
laminar deploy staging
laminar destroy staging     # tear down a stage

CI/CD (GitHub Actions)

Use a Laminar CLI token for deployment auth. Keep AWS OIDC when the workflow also needs AWS identity for preflight checks or account-specific steps; do not store AWS access keys in GitHub.

name: Deploy
on:
  push:
    branches: [production]
permissions:
  id-token: write          # AWS OIDC
  contents: read
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
          aws-region: us-east-1
      - run: curl -fsSL https://laminar.rocks/install.sh | sh
      - run: echo "$HOME/.local/bin" >> "$GITHUB_PATH"
      - run: laminar version
      - run: laminar link ${{ secrets.LAMINAR_PROJECT_ID }}
      - run: laminar deploy production
        env:
          LAMINAR_API_TOKEN: ${{ secrets.LAMINAR_API_TOKEN }}
          LAMINAR_API_URL: https://api.laminar.rocks/api/v1

Create the token in Dashboard → Settings → CLI access tokens, then store it as a GitHub secret named LAMINAR_API_TOKEN. Store the linked project id as LAMINAR_PROJECT_ID.