Default Steps
Built-in reusable steps provided by Airlock.
Airlock ships with a set of built-in steps in the airlock-hq/airlock/defaults/ namespace. These handle the most common workflow tasks.
lint
Reference: airlock-hq/airlock/defaults/lint@main
Runs linters and formatters on the codebase, auto-fixing issues where possible.
- Detects your project's linter configuration (ESLint, Prettier, Biome, Ruff, etc.)
- Applies auto-fixes directly to the worktree (must run pre-freeze)
- Produces patch artifacts for any changes made
- name: lint
uses: airlock-hq/airlock/defaults/lint@maintest
Reference: airlock-hq/airlock/defaults/test@main
Runs your project's test suite.
- Detects your test runner (Jest, Vitest, pytest, go test, etc.)
- Produces content artifacts with test results summary
- Typically runs post-freeze
- name: test
uses: airlock-hq/airlock/defaults/test@maindescribe
Reference: airlock-hq/airlock/defaults/describe@main
Generates a PR title and description from the diff using AI.
- Analyzes the diff between
AIRLOCK_BASE_SHAandAIRLOCK_HEAD_SHA - Produces content artifacts (title and description)
- Produces comment artifacts (inline review comments)
- Typically runs post-freeze
- name: describe
uses: airlock-hq/airlock/defaults/describe@mainpush
Reference: airlock-hq/airlock/defaults/push@main
Pushes the validated code to the upstream remote.
- Reads
AIRLOCK_UPSTREAM_URLand pushesAIRLOCK_BRANCH - Only runs after all validations and approvals
- Does nothing if the Push Request was canceled
- name: push
uses: airlock-hq/airlock/defaults/push@maincreate-pr
Reference: airlock-hq/airlock/defaults/create-pr@main
Creates a pull request (or merge request) on the upstream host.
- Uses the title and description from content artifacts produced by earlier steps
- Attaches comment artifacts as PR review comments
- Supports GitHub, GitLab, and Bitbucket
- name: create-pr
uses: airlock-hq/airlock/defaults/create-pr@mainTypical Ordering
The default workflow uses these steps in this order:
steps:
- name: lint
uses: airlock-hq/airlock/defaults/lint@main
- name: freeze
run: airlock exec freeze
- name: describe
uses: airlock-hq/airlock/defaults/describe@main
- name: test
uses: airlock-hq/airlock/defaults/test@main
- name: review
run: 'true'
require-approval: true
- name: push
uses: airlock-hq/airlock/defaults/push@main
- name: create-pr
uses: airlock-hq/airlock/defaults/create-pr@mainNote that freeze itself is not a default step — it's an airlock exec command used inline.
Related
- Custom Steps — Write your own reusable steps
- Workflows — How steps fit into workflows
- Artifacts — What each step produces