From 3cdb6a62f75ab9dd5390f3506f5c62530d7299c7 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 26 Mar 2026 19:05:26 +0000 Subject: 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 ## 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 --- .depot/workflows/rust.yml | 187 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 .depot/workflows/rust.yml (limited to '.depot/workflows/rust.yml') 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 -- cgit v1.3.1