aboutsummaryrefslogtreecommitdiffstats
path: root/.depot/workflows/rust.yml
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@atuin.sh>2026-03-26 19:05:26 +0000
committerGitHub <noreply@github.com>2026-03-26 19:05:26 +0000
commit3cdb6a62f75ab9dd5390f3506f5c62530d7299c7 (patch)
tree69b5ee20cb1326fe30bb560179c6566a82f2707d /.depot/workflows/rust.yml
parentfix: remove unnecessary arboard/image-data default feature (#3345) (diff)
downloadatuin-3cdb6a62f75ab9dd5390f3506f5c62530d7299c7.zip
chore(ci): switch most workflows to depot ci (#3352)
Continuing the trend of shifting away from GitHub services. Depot is faster, and more reliable. Avoiding docker + release workflows for now, as those have been a pain in the ass to get correct. Will check and see if we can ensure the logs/etc can be public. I'm going to merge this, see how well it works, and if we're good delete the matching github workflows <!-- Thank you for making a PR! Bug fixes are always welcome, but if you're adding a new feature or changing an existing one, we'd really appreciate if you open an issue, post on the forum, or drop in on Discord --> ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing
Diffstat (limited to '.depot/workflows/rust.yml')
-rw-r--r--.depot/workflows/rust.yml187
1 files changed, 187 insertions, 0 deletions
diff --git a/.depot/workflows/rust.yml b/.depot/workflows/rust.yml
new file mode 100644
index 00000000..550995d7
--- /dev/null
+++ b/.depot/workflows/rust.yml
@@ -0,0 +1,187 @@
+# Depot CI Migration
+# Source: .github/workflows/rust.yml
+#
+# No changes were necessary.
+
+name: Rust
+on:
+ push:
+ branches: [main]
+ paths-ignore:
+ - "ui/**"
+ pull_request:
+ branches: [main]
+ paths-ignore:
+ - "ui/**"
+env:
+ CARGO_TERM_COLOR: always
+jobs:
+ build:
+ strategy:
+ matrix:
+ os: [depot-ubuntu-24.04, macos-14, windows-latest]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: 1.94.0
+ - uses: actions/cache@v5
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
+ - name: Run cargo build common
+ run: cargo build -p atuin-common --locked --release
+ - name: Run cargo build client
+ run: cargo build -p atuin-client --locked --release
+ - name: Run cargo build server
+ run: cargo build -p atuin-server --locked --release
+ - name: Run cargo build main
+ run: cargo build --all --locked --release
+ cross-compile:
+ strategy:
+ matrix:
+ # There was an attempt to make cross-compiles also work on FreeBSD, but that failed with:
+ #
+ # warning: libelf.so.2, needed by <...>/libkvm.so, not found (try using -rpath or -rpath-link)
+ target: [x86_64-unknown-illumos]
+ runs-on: depot-ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install cross
+ uses: taiki-e/install-action@v2
+ with:
+ tool: cross
+ - uses: actions/cache@v5
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ matrix.target }}-cross-compile-${{ hashFiles('**/Cargo.lock') }}
+ - name: Run cross build common
+ run: cross build -p atuin-common --locked --target ${{ matrix.target }}
+ - name: Run cross build client
+ run: cross build -p atuin-client --locked --target ${{ matrix.target }}
+ - name: Run cross build server
+ run: cross build -p atuin-server --locked --target ${{ matrix.target }}
+ - name: Run cross build main
+ run: |
+ cross build --all --locked --target ${{ matrix.target }}
+ unit-test:
+ strategy:
+ matrix:
+ os: [depot-ubuntu-24.04, macos-14, windows-latest]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: 1.94.0
+ - uses: taiki-e/install-action@v2
+ name: Install nextest
+ with:
+ tool: cargo-nextest
+ - uses: actions/cache@v5
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - name: Run cargo test
+ run: cargo nextest run --lib --bins
+ check:
+ strategy:
+ matrix:
+ os: [depot-ubuntu-24.04, macos-14, windows-latest]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: 1.94.0
+ - uses: actions/cache@v5
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - name: Run cargo check (all features)
+ run: cargo check --all-features --workspace
+ - name: Run cargo check (no features)
+ run: cargo check --no-default-features --workspace
+ - name: Run cargo check (sync)
+ run: cargo check --no-default-features --features sync --workspace
+ - name: Run cargo check (server)
+ run: cargo check -p atuin-server
+ - name: Run cargo check (client only)
+ run: cargo check --no-default-features --features client --workspace
+ integration-test:
+ runs-on: depot-ubuntu-24.04
+ services:
+ postgres:
+ image: postgres
+ env:
+ POSTGRES_USER: atuin
+ POSTGRES_PASSWORD: pass
+ POSTGRES_DB: atuin
+ ports:
+ - 5432:5432
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: 1.94.0
+ - uses: taiki-e/install-action@v2
+ name: Install nextest
+ with:
+ tool: cargo-nextest
+ - uses: actions/cache@v5
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - name: Run cargo test
+ run: cargo nextest run --test '*'
+ env:
+ ATUIN_DB_URI: postgres://atuin:pass@localhost:5432/atuin
+ clippy:
+ runs-on: depot-ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install latest rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: 1.94.0
+ components: clippy
+ - uses: actions/cache@v5
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - name: Run clippy
+ run: cargo clippy -- -D warnings -D clippy::redundant_clone
+ format:
+ runs-on: depot-ubuntu-24.04
+ steps:
+ - uses: actions/checkout@v6
+ - name: Install latest rust
+ uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: 1.94.0
+ components: rustfmt
+ - name: Format
+ run: cargo fmt -- --check