⚡️ Announcing Depot Metal
← Back to changelog

Snapshots in Depot CI let you bake setup steps into a reusable custom image, so later jobs start from a prepared environment instead of repeating the same work. This release brings a few improvements.

  • Persist environment variables: Snapshots now persist non-sensitive environment variables, so configuration you set during the snapshot job is there when later jobs run. Sensitive and masked variables remain excluded. This means no more workaround for setup actions that modify PATH.

  • Faster registry throughput: Pushing a snapshot to the registry is much faster. We raised the throughput from 30 Mbps to 1 Gbps.

  • Provenance: Every snapshot now carries provenance information as annotations. This helps to answer questions such as which run built it and what the workflow looked like.

  • Create and reuse images in a single workflow: Add snapshot: to a job to create one. The first run builds the snapshot; later runs reuse it and skip the snapshot job. Combine it with needs: to build a snapshot before the job that depends on it. You can also use image shorthands like e2e-base, which expands to {orgId}.registry.depot.dev/depot/snapshots/e2e-base:latest.

jobs:
  setup:
    runs-on: depot-ubuntu-latest
    snapshot: your-image:v1
    steps:
      - name: Install dependencies
        run: sudo apt-get update && sudo apt-get install -y your-tool-here

  work:
    needs: setup
    runs-on:
      image: your-image
    steps:
      - uses: actions/checkout@v4
      - run: your-tool-here do-the-thing

See the custom images guide for the full details.