We use cookies to understand how people use Depot.
Depot CI

Depot CI compatibility with GitHub Actions

Depot CI executes GitHub Actions YAML workflows. The following tables list GitHub Actions syntax, triggers, and configuration and whether they're supported in Depot CI.

Workflow-level configuration

FieldPurposeSupported
nameWorkflow display name
run-nameDynamic run title
onWorkflow triggers
on.workflow_callReusable workflow definition
on.workflow_call.inputsReusable workflow inputs
permissionsToken scopes
envWorkflow environment variables
defaultsDefault settings (shell, working-directory)
concurrencyConcurrency control
jobsJobs definition

Triggers (on.*)

FieldEvent typeSupported
on.<event_name>Event triggers
on.<event_name>.typesEvent trigger types
on.merge_groupMerge queue triggers
on.push.branchesPush branch filters
on.push.tagsPush tag filters
on.pull_requestPull request triggers
on.pull_request.branchesPR branch filters
on.pull_request_targetPull request triggers from the base branch context
on.*.pathsPath filters
on.scheduleCron schedule triggers
on.workflow_call.inputs.*Reusable workflow inputs (type, default, required)
on.workflow_call.outputsReusable workflow outputs
on.workflow_call.secretsReusable workflow secrets definition
on.workflow_runWorkflow run triggers
on.workflow_dispatchManual dispatch triggers
on.workflow_dispatch.inputsManual dispatch inputs

Job-level configuration (jobs.<job_id>.*)

FieldPurposeSupportedNotes
jobs.<job_id>Job definition
jobs.<job_id>.nameJob display name
jobs.<job_id>.needsJob dependencies / DAG
jobs.<job_id>.ifConditional job execution
jobs.<job_id>.runs-onRunner selectionWe respect Depot runner labels and treat non-Depot labels as depot-ubuntu-latest.
jobs.<job_id>.permissionsJob-scoped permissions
jobs.<job_id>.environmentDeployment environments
jobs.<job_id>.concurrencyJob-level concurrency
jobs.<job_id>.outputsJob outputs / cross-job data
jobs.<job_id>.envJob environment variables
jobs.<job_id>.defaultsJob default settings
jobs.<job_id>.timeout-minutesJob timeout
jobs.<job_id>.strategyMatrix strategy
jobs.<job_id>.[strategy.fail]Matrix fail-fast
jobs.<job_id>.strategy.max-parallelMatrix parallel limit
jobs.<job_id>.continue-on-errorAllow job failure
jobs.<job_id>.containerJob container
jobs.<job_id>.servicesService containers
jobs.<job_id>.usesReusable workflow call
jobs.<job_id>.withReusable workflow inputs
jobs.<job_id>.secretsReusable workflow secrets
jobs.<job_id>.secrets.inheritInherit all secrets
jobs.<job_id>.stepsStep definitions
jobs.<job_id>.snapshotCustom runner images (larger runners)See Build and use custom images with Depot CI

Step-level configuration

FieldPurposeSupported
steps[*].idStep identifier
steps[*].nameStep display name
steps[*].ifConditional step execution
steps[*].usesAction reference
steps[*].runShell command execution
steps[*].shellShell type (bash, pwsh, python)
steps[*].withAction inputs
steps[*].envStep environment variables
steps[*].working-directoryStep working directory
steps[*].continue-on-errorAllow step failure
steps[*].timeout-minutesStep timeout

Expressions

Contexts

ContextPurposeSupported
githubEvent payload, repo, actor
envEnvironment variables
varsRepository/org variables
secretsSecret values
needsDependent job outputs
strategyMatrix strategy info
matrixCurrent matrix values
stepsPrior step outputs
jobCurrent job info
runnerRunner info
inputsWorkflow inputs

Functions

FunctionPurposeSupported
always()Run regardless of status
success()Run if no failures
failure()Run if any failure
cancelled()Run if cancelled
hashFiles()File hashing for caching
contains()String/array contains
startsWith()String prefix check
endsWith()String suffix check
format()String formatting
join()Array to string
toJSON()Object to JSON
fromJSON()JSON to object

Action types

TypeDescriptionSupported
JavaScriptNode 12/16/20/24 actions
CompositeComposite actions
DockerContainer actions

Limitations

GitHub-only event triggers

The following events are GitHub-specific concepts that aren't applicable to Depot CI workflows, such as Issues, Discussions, and Pages.

FieldEvent typeSupported
on.branch_protection_ruleGitHub specific event trigger
on.check_runGitHub specific event trigger
on.check_suiteGitHub specific event trigger
on.createGitHub specific event trigger
on.deleteGitHub specific event trigger
on.deploymentGitHub specific event trigger
on.deployment_statusGitHub specific event trigger
on.discussionGitHub specific event trigger
on.discussion_commentGitHub specific event trigger
on.forkGitHub specific event trigger
on.gollumGitHub specific event trigger
on.image_versionGitHub specific event trigger
on.issue_commentGitHub specific event trigger
on.issuesGitHub specific event trigger
on.labelGitHub specific event trigger
on.milestoneGitHub specific event trigger
on.page_buildGitHub specific event trigger
on.publicGitHub specific event trigger
on.pull_request_commentGitHub specific event trigger
on.pull_request_reviewGitHub specific event trigger
on.pull_request_review_commentGitHub specific event trigger
on.registry_packageGitHub specific event trigger
on.releaseGitHub specific event trigger
on.repository_dispatchGitHub specific event trigger
on.statusGitHub specific event trigger
on.watchGitHub specific event trigger

Reusable workflows from other repositories

The uses key for referencing workflows from other repositories is not supported. You can still use uses to reference actions from the GitHub Actions Marketplace (for example, uses: actions/checkout@v4).

Pull request workflows triggered from forks

GitHub allows pull_request and pull_request_target workflows to run when triggered from forked repositories. Support for this is planned.

Snapshotting and custom runner images

Custom runner images via the snapshot field aren't supported. You can still build and use custom images on Depot CI.

Runner labels

Only Depot runs-on labels are supported. Any label that Depot doesn't recognize is treated as depot-ubuntu-latest.

Permissions

The following permissions are supported: actions, checks, contents, id-token, metadata, pull_requests, statuses, workflows.