diff options
Diffstat (limited to '.depot/workflows/rust.yml')
| -rw-r--r-- | .depot/workflows/rust.yml | 187 |
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 |
