Migration Guide
What's deprecated
The Code Quality dashboard in the Trunk web app has been deprecated, along with the ability to configure and manage CI workflows in the web app.
Migrating nightly and PR jobs
Nightly and PR jobs configured through the Trunk web app will no longer be supported. However, you can still run these checks by migrating these workflows to run as a step in your existing CI pipelines.
Run on PRs on GitHub Actions
Trunk provides a GitHub action to help you lint your code in CI. You add it as a step to your workflows. To run on pull requests or on a schedule, you can configure the appropriate triggers for your workflow.
name: Trunk Code Quality
on:
push:
branches: main
pull_request:
branches: main
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ... other setup steps
- name: Trunk Code Quality
uses: trunk-io/trunk-action@v1
# ... other CI stepsYou will still receive inline comments about your errors if you run the action with the post-annotations argument.
Run on PRs using other CI providers
You can also set up checks on PR without using the provided GitHub action. Download the CLI in line and run the Code Quality CLI in CI mode to check a PR. Note that you will not receive inline arguments with this approach.
curl -fsSLO --retry 3 https://trunk.io/releases/trunk
chmod +x trunk
./trunk check --ciHere’s an example of the commands in a GitHub Actions workflow, but you can do the same in virtually any CI pipeline.
name: Trunk Code Quality
on:
push:
branches: main
pull_request:
branches: main
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ... other setup steps
- run: |
curl -fsSLO --retry 3 https://trunk.io/releases/trunk
chmod +x trunk
./trunk check --ci --ci-progress
# ... other CI stepsRun nightly on GitHub Actions
To run Trunk’s GitHub action to lint your entire code base nightly or on a schedule, you can specify the `check-mode: all` argument when running the action.
name: Trunk Code Quality
on:
schedule:
# Run at 4 PM UTC daily (cron uses UTC time)
- cron: '0 16 * * *'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ... other setup steps
- name: Trunk Code Quality
uses: trunk-io/trunk-action@v1
with:
check-mode: all
# ... other CI stepsRun nightly using other CI providers
Specify the --all flag on your trunk check command to run on your entire codebase. Trunk is Git aware and checks only files changed in a PR by default. Specifying --all will instead check the whole code base.
curl -fsSLO --retry 3 https://trunk.io/releases/trunk
chmod +x trunk
./trunk check --all --ci --ci-progressHere’s an example of the command in a GitHub Actions workflow. This command will also work in any other CI provider.
name: Trunk Code Quality
on:
schedule:
# Run at 4 PM UTC daily (cron uses UTC time)
- cron: '0 16 * * *'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# ... other setup steps
- run: |
curl -fsSLO --retry 3 https://trunk.io/releases/trunk
chmod +x trunk
./trunk check --all --ci --ci-progress
# ... other CI stepsCaching
You can cache Trunk’s binary and install tools to speed up your CI runs. Trunk caches the version of trunk itself, linters, formatters, and lint results in the ~/.cache/trunk folder. Consult the documentation for your CI provider to learn about caching this folder.
Last updated

