mirror of
https://github.com/atuinsh/atuin.git
synced 2026-10-16 04:26:53 +02:00
ci: remove the GitHub Actions workflows Buildkite replaced (#4277)
Remove all workflows that have been replaced with buildkite We have intentionally moved slow tests (illumos, nix, windows) to be main only. If fast runners can be found or setup, we can bring them back again. Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
2b8631eb2f
commit
c2ae7351da
15 files changed
+129
-1100
No files matched your search
@@ -1,7 +1,8 @@
|
||||
# atuin CI on Buildkite: PROTOTYPE, running alongside GitHub Actions to
|
||||
# compare. Ports rust.yml (Linux + macOS; Windows and the illumos VM job
|
||||
# stay on GitHub Actions for now), nix.yml, codespell.yml, shellcheck.yml,
|
||||
# vale.yml, installer.yml and nightly.yml, with the same jobs and commands.
|
||||
# atuin CI. Replaces the GitHub Actions workflows rust.yml (except
|
||||
# Windows, which stays in .github/workflows/windows.yml until Buildkite's
|
||||
# hosted Windows agents are generally available), nix.yml, codespell.yml,
|
||||
# shellcheck.yml, vale.yml, installer.yml and nightly.yml, with the same
|
||||
# jobs and commands.
|
||||
#
|
||||
# Each step sources .buildkite/scripts/toolchain.sh (rustup + pinned tools,
|
||||
# and the `section` log-group helper). Caching is Buildkite Cache
|
||||
@@ -161,7 +162,7 @@ steps:
|
||||
# The registry key includes the OS, so macOS saves its own.
|
||||
- .buildkite/scripts/cache-save.sh --name cargo_registry
|
||||
# No system libssl on macOS: --all-features builds vendored OpenSSL,
|
||||
# as it does on GitHub Actions.
|
||||
# as the old GitHub Actions job did.
|
||||
- 'section ":mag: check (all features)" cargo check --all-features --workspace'
|
||||
- 'section ":mag: check (no features)" cargo check --no-default-features --workspace'
|
||||
- 'section ":mag: check (sync)" cargo check --no-default-features --features sync --workspace'
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
# Depot CI Migration
|
||||
# Source: .github/workflows/codespell.yml
|
||||
#
|
||||
# No changes were necessary.
|
||||
|
||||
# Codespell configuration is within .codespellrc
|
||||
name: Codespell
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
codespell:
|
||||
name: Check for spelling errors
|
||||
runs-on: depot-ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v6
|
||||
- name: Codespell
|
||||
uses: codespell-project/actions-codespell@v2
|
||||
with:
|
||||
# This is regenerated from commit history
|
||||
# we cannot rewrite commit history, and I'd rather not correct it
|
||||
# every time
|
||||
exclude_file: CHANGELOG.md
|
||||
@@ -1,36 +0,0 @@
|
||||
# Depot CI Migration
|
||||
# Source: .github/workflows/installer.yml
|
||||
#
|
||||
# No changes were necessary.
|
||||
|
||||
name: Install
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
paths: .github/workflows/installer.yml
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
jobs:
|
||||
install:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [depot-ubuntu-24.04, macos-14]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Install zsh for ubuntu
|
||||
if: matrix.os == 'depot-ubuntu-24.04'
|
||||
run: |
|
||||
sudo apt install zsh
|
||||
- name: Test install script on bash
|
||||
run: |
|
||||
/bin/bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)"
|
||||
[ -d "$HOME/.atuin" ] && source $HOME/.atuin/bin/env
|
||||
atuin --help
|
||||
- name: Test install script on zsh
|
||||
shell: zsh {0}
|
||||
run: |
|
||||
/bin/bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)"
|
||||
[ -d "$HOME/.atuin" ] && source $HOME/.atuin/bin/env
|
||||
atuin --help
|
||||
@@ -1,41 +0,0 @@
|
||||
# Depot CI Migration
|
||||
# Source: .github/workflows/nix.yml
|
||||
#
|
||||
# No changes were necessary.
|
||||
|
||||
# Verify the Nix build is working
|
||||
# Failures will usually occur due to an out of date Rust version
|
||||
# That can be updated to the latest version in nixpkgs-unstable with `nix flake update`
|
||||
name: Nix
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- 'ui/**'
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- 'ui/**'
|
||||
jobs:
|
||||
check:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: cachix/install-nix-action@v31
|
||||
- name: Run nix flake check
|
||||
run: nix flake check --print-build-logs
|
||||
build-test:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: cachix/install-nix-action@v31
|
||||
- name: Run nix build
|
||||
run: nix build --print-build-logs
|
||||
nixfmt:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- uses: cachix/install-nix-action@v31
|
||||
# Run `nix fmt` to fix any failures here
|
||||
- name: Check nix formatting
|
||||
run: nix fmt -- --check $(git ls-files '*.nix')
|
||||
@@ -1,187 +0,0 @@
|
||||
# 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 nightly rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: nightly
|
||||
components: rustfmt
|
||||
- name: Format
|
||||
run: cargo +nightly fmt -- --check
|
||||
@@ -1,20 +0,0 @@
|
||||
# Depot CI Migration
|
||||
# Source: .github/workflows/shellcheck.yml
|
||||
#
|
||||
# No changes were necessary.
|
||||
|
||||
name: Shellcheck
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
jobs:
|
||||
shellcheck:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
- name: Run shellcheck
|
||||
uses: ludeeus/action-shellcheck@master
|
||||
env:
|
||||
SHELLCHECK_OPTS: "-e SC2148"
|
||||
@@ -1,28 +0,0 @@
|
||||
# Codespell configuration is within .codespellrc
|
||||
---
|
||||
name: Codespell
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
codespell:
|
||||
name: Check for spelling errors
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
- name: Codespell
|
||||
uses: codespell-project/actions-codespell@v2.2
|
||||
with:
|
||||
# This is regenerated from commit history
|
||||
# we cannot rewrite commit history, and I'd rather not correct it
|
||||
# every time
|
||||
exclude_file: CHANGELOG.md
|
||||
@@ -1,38 +0,0 @@
|
||||
name: Install
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
paths: .github/workflows/installer.yml
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
install:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [depot-ubuntu-24.04, depot-macos-26]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install zsh for ubuntu
|
||||
if: matrix.os == 'depot-ubuntu-24.04'
|
||||
run: |
|
||||
sudo apt install zsh
|
||||
|
||||
- name: Test install script on bash
|
||||
run: |
|
||||
/bin/bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)"
|
||||
[ -d "$HOME/.atuin" ] && source $HOME/.atuin/bin/env
|
||||
atuin --help
|
||||
|
||||
- name: Test install script on zsh
|
||||
shell: zsh {0}
|
||||
run: |
|
||||
/bin/bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://setup.atuin.sh)"
|
||||
[ -d "$HOME/.atuin" ] && source $HOME/.atuin/bin/env
|
||||
atuin --help
|
||||
@@ -1,45 +0,0 @@
|
||||
name: Nightly
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: "0 10 * * *"
|
||||
workflow_dispatch: {}
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
nightly-tests:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
timeout-minutes: 60
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
name: Install nextest
|
||||
with:
|
||||
tool: cargo-nextest
|
||||
|
||||
- uses: actions/cache@v6
|
||||
with:
|
||||
path: |
|
||||
~/.cargo/registry
|
||||
~/.cargo/git
|
||||
target
|
||||
key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock', 'Cargo.toml') }}
|
||||
|
||||
- name: Run nightly tests
|
||||
run: cargo nextest run -p atuin-daemon --test nightly --run-ignored all
|
||||
@@ -1,48 +0,0 @@
|
||||
# Verify the Nix build is working
|
||||
# Failures will usually occur due to an out of date Rust version
|
||||
# That can be updated to the latest version in nixpkgs-unstable with `nix flake update`
|
||||
name: Nix
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- 'ui/**'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
paths-ignore:
|
||||
- 'ui/**'
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: cachix/install-nix-action@v31
|
||||
|
||||
- name: Run nix flake check
|
||||
run: nix flake check --print-build-logs
|
||||
|
||||
build-test:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: cachix/install-nix-action@v31
|
||||
|
||||
- name: Run nix build
|
||||
run: nix build --print-build-logs
|
||||
|
||||
- name: Check the built binary runs
|
||||
run: ./result/bin/atuin --version
|
||||
|
||||
nixfmt:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: cachix/install-nix-action@v31
|
||||
|
||||
# Run `nix fmt` to fix any failures here
|
||||
- name: Check nix formatting
|
||||
run: nix fmt -- --ci
|
||||
@@ -1,574 +0,0 @@
|
||||
name: Rust
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- "ui/**"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- "ui/**"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
# The one full release build. Platform-specific compile errors are caught by
|
||||
# unit-test's debug builds on every OS, release-profile breakage is
|
||||
# platform-independent (the check job type-checks the profile everywhere),
|
||||
# and release.yml builds every target for real. Windows spent ~5 min on two
|
||||
# serial crates here and macOS ~3 min of scarce runner capacity for nothing.
|
||||
build:
|
||||
runs-on: depot-ubuntu-24.04-8
|
||||
|
||||
env:
|
||||
# This job only proves the release profile compiles; nothing it builds is
|
||||
# shipped (release.yml uses the `dist` profile, which sets lto = "fat"
|
||||
# explicitly). Skip the default thin-local LTO pass on the final binary.
|
||||
CARGO_PROFILE_RELEASE_LTO: "off"
|
||||
# Experiment: the two crates that dominate this job (atuin, atuin-daemon)
|
||||
# leave most cores idle with the default 16 codegen units; more, smaller
|
||||
# units let LLVM spread them out. Drop if the timings don't improve.
|
||||
CARGO_PROFILE_RELEASE_CODEGEN_UNITS: "256"
|
||||
# sccache serves compiled objects from Depot's managed WebDAV cache; keep
|
||||
# incremental off (sccache can't cache incremental compilations).
|
||||
RUSTC_WRAPPER: sccache
|
||||
CARGO_INCREMENTAL: "0"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
# rust-cache restores a warm, bounded target/ so cargo skips unchanged
|
||||
# crates; sccache (RUSTC_WRAPPER, env) then serves the crates that DO
|
||||
# compile -- cold, new-branch, or changed -- from Depot's cross-branch
|
||||
# WebDAV cache. rust-cache also caches ~/.cargo and cleans stale target/
|
||||
# artifacts, so the disk stays bounded.
|
||||
- uses: mozilla-actions/sccache-action@v0.0.9
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: build
|
||||
|
||||
- name: Run cargo build (release)
|
||||
run: cargo build --workspace --locked --release
|
||||
|
||||
- name: sccache stats
|
||||
if: ${{ always() }}
|
||||
run: sccache --show-stats
|
||||
|
||||
# This used to use cross compilling via `cross` but it's more reliable to just
|
||||
# run this on a real illumos (OmniOS) system.
|
||||
test-in-vm:
|
||||
name: Test in VM (illumos)
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 25
|
||||
steps:
|
||||
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Test on illumos
|
||||
uses: vmactions/omnios-vm@317e4f8069dad8a65e1520808f1a68ef3fd20565 # v1.3.6
|
||||
with:
|
||||
# use the latest omnios LTS
|
||||
release: "r151054-build"
|
||||
envs: "CARGO_TERM_COLOR"
|
||||
usesh: true
|
||||
mem: 4096
|
||||
copyback: false
|
||||
prepare: |
|
||||
pkg install pkg-config openssl
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain 1.98.0
|
||||
run: |
|
||||
. "$HOME/.cargo/env"
|
||||
|
||||
banner client
|
||||
cargo build -p atuin-client --locked --release
|
||||
|
||||
banner server
|
||||
cargo build -p atuin-server --locked --release
|
||||
|
||||
unit-test:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [depot-ubuntu-24.04-8, depot-macos-26, depot-windows-2025-16]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
env:
|
||||
# sccache serves compiled objects from Depot's managed WebDAV cache; keep
|
||||
# incremental off (sccache can't cache incremental compilations).
|
||||
RUSTC_WRAPPER: sccache
|
||||
CARGO_INCREMENTAL: "0"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
name: Install nextest
|
||||
with:
|
||||
tool: cargo-nextest
|
||||
|
||||
# rust-cache (warm target skip) + sccache (serves compiled crates from
|
||||
# Depot's cross-branch cache); see the build job.
|
||||
- uses: mozilla-actions/sccache-action@v0.0.9
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: unit-test
|
||||
|
||||
- name: Run cargo test
|
||||
run: cargo nextest run --lib --bins
|
||||
|
||||
- name: sccache stats
|
||||
if: ${{ always() }}
|
||||
run: sccache --show-stats
|
||||
|
||||
- name: Show new proptest regressions
|
||||
if: ${{ failure() }}
|
||||
shell: bash
|
||||
run: |
|
||||
echo "::group::proptest regression files changed by this run"
|
||||
echo "A proptest failure appends a 'cc <seed>' line to a regression file."
|
||||
echo "New/changed regression files (download the artifact below to reproduce):"
|
||||
git add -N -- '*proptest-regressions*' || true
|
||||
git status --porcelain
|
||||
git --no-pager diff
|
||||
echo "::endgroup::"
|
||||
|
||||
- name: Upload proptest regressions
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: proptest-regressions-unit-${{ matrix.os }}
|
||||
path: |
|
||||
**/proptest-regressions/**
|
||||
**/*.proptest-regressions
|
||||
if-no-files-found: ignore
|
||||
retention-days: 14
|
||||
|
||||
check:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [depot-ubuntu-24.04, depot-macos-26, depot-windows-2025-16]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
# rust-cache (not sccache) for check/msrv/clippy/docs: these emit metadata
|
||||
# only (no link), which sccache refuses to cache, so sccache gives 0 hits
|
||||
# here. rust-cache instead bounds target/ growth (it cleans stale
|
||||
# artifacts before each save) and keeps these jobs warm.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: check
|
||||
|
||||
- name: Run cargo check (all features)
|
||||
run: cargo check --all-features --workspace
|
||||
env:
|
||||
# --all-features enables vendored-tls, which compiles OpenSSL from
|
||||
# source. Type-checking doesn't need that; link against the system
|
||||
# libssl where one is installed (Linux only). openssl-sys treats any
|
||||
# value other than "0" as "don't vendor".
|
||||
OPENSSL_NO_VENDOR: ${{ runner.os == 'Linux' && '1' || '0' }}
|
||||
|
||||
- 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
|
||||
|
||||
- name: Run cargo check (release profile)
|
||||
run: cargo check --workspace --locked --release
|
||||
|
||||
msrv:
|
||||
name: MSRV (1.95.0)
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install MSRV rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.95.0
|
||||
|
||||
# rust-cache (see check job): sccache can't cache metadata-only builds.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: msrv
|
||||
|
||||
# Verifies the declared MSRV (workspace.package.rust-version) still holds
|
||||
# with all features enabled. --all-features isn't a strict superset (it
|
||||
# skips `cfg(not(feature))` and no-default-features paths), but atuin's
|
||||
# features are additive, so this catches MSRV regressions cheaply.
|
||||
- name: Check MSRV (all features)
|
||||
# rust-toolchain.toml pins the dev toolchain and outranks dtolnay's
|
||||
# `rustup default`, so force the MSRV toolchain explicitly here.
|
||||
env:
|
||||
RUSTUP_TOOLCHAIN: 1.95.0
|
||||
run: cargo check --locked --workspace --all-features
|
||||
|
||||
integration-test:
|
||||
# Bumped from -8 to -16 for root-disk headroom (150 GB -> 180 GB) against the
|
||||
# intermittent runner-crash ENOSPC (the runner worker died writing its diag
|
||||
# log to a full root fs), plus 2x CPU (faster) and 2x RAM (larger /dev/shm
|
||||
# safety margin).
|
||||
runs-on: depot-ubuntu-24.04-16
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres
|
||||
env:
|
||||
POSTGRES_USER: atuin
|
||||
POSTGRES_PASSWORD: pass
|
||||
POSTGRES_DB: atuin
|
||||
ports:
|
||||
- 5432:5432
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
name: Install nextest
|
||||
with:
|
||||
tool: cargo-nextest
|
||||
|
||||
# rust-cache (warm target skip) + sccache (serves compiled crates from
|
||||
# Depot's cross-branch cache); see the build job. rust-cache cleans stale
|
||||
# target/ artifacts, so it can't re-accrete the 71 GB that once crashed
|
||||
# the runner with ENOSPC.
|
||||
- uses: mozilla-actions/sccache-action@v0.0.9
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: integration-test
|
||||
|
||||
- name: Report disk space (after cache restore)
|
||||
# Telemetry for the intermittent "No space left on device" runner crash.
|
||||
# The one confirmed ENOSPC (run 35642513172) killed the runner worker as
|
||||
# it wrote its own diag log to the ROOT fs (/home/runner/*), leaving no
|
||||
# job log -- so record free space per mount here, where it survives in
|
||||
# the step log, plus the restored cache size (the run-to-run variable).
|
||||
continue-on-error: true
|
||||
run: |
|
||||
df -h
|
||||
df -h /dev/shm
|
||||
timeout 30 du -sh ~/.cargo/registry ~/.cargo/git target 2>/dev/null || true
|
||||
|
||||
- name: Run cargo test
|
||||
# E2e tests have a separate job with shell dependencies.
|
||||
run: |
|
||||
# Background disk sampler: the confirmed crash killed the runner worker
|
||||
# mid-test, so an after-the-fact step can't capture the fill. This
|
||||
# streams free space to the live step log every 2 s; the last line
|
||||
# before a crash tells us which mount hit 0 (root / vs /dev/shm).
|
||||
( while true; do echo "[diskwatch] $(df -P / /dev/shm | awk 'NR>1{print $6"="$4"KB-free"}' | tr '\n' ' ')"; sleep 2; done ) &
|
||||
watcher=$!
|
||||
trap 'kill "$watcher" 2>/dev/null || true' EXIT
|
||||
cargo nextest run --test '*' -E 'not binary(/e2e_.*/)'
|
||||
env:
|
||||
ATUIN_DB_URI: postgres://atuin:pass@localhost:5432/atuin
|
||||
# Test databases live in tempdirs. With 8 tests writing SQLite WALs
|
||||
# at once the runner disk stalls for seconds and unrelated tests miss
|
||||
# their 5 s pool-open timeout; tmpfs takes fsync out of the picture.
|
||||
TMPDIR: /dev/shm
|
||||
# sccache: wrap rustc + disable incremental (sccache cannot cache
|
||||
# incremental compilation). Endpoint/auth for Depot Cache come from
|
||||
# the runner's pre-injected SCCACHE_WEBDAV_* env.
|
||||
RUSTC_WRAPPER: sccache
|
||||
CARGO_INCREMENTAL: "0"
|
||||
|
||||
- name: sccache stats (hit rate)
|
||||
if: ${{ always() }}
|
||||
run: sccache --show-stats
|
||||
|
||||
- name: Show new proptest regressions
|
||||
if: ${{ failure() }}
|
||||
shell: bash
|
||||
run: |
|
||||
echo "::group::proptest regression files changed by this run"
|
||||
echo "A proptest failure appends a 'cc <seed>' line to a regression file."
|
||||
echo "New/changed regression files (download the artifact below to reproduce):"
|
||||
git add -N -- '*proptest-regressions*' || true
|
||||
git status --porcelain
|
||||
git --no-pager diff
|
||||
echo "::endgroup::"
|
||||
|
||||
- name: Upload proptest regressions
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: proptest-regressions-integration
|
||||
path: |
|
||||
**/proptest-regressions/**
|
||||
**/*.proptest-regressions
|
||||
if-no-files-found: ignore
|
||||
retention-days: 14
|
||||
|
||||
e2e:
|
||||
name: e2e (${{ matrix.os }})
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [depot-ubuntu-24.04, depot-macos-26]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
env:
|
||||
# sccache serves compiled objects from Depot's managed WebDAV cache; keep
|
||||
# incremental off (sccache can't cache incremental compilations).
|
||||
RUSTC_WRAPPER: sccache
|
||||
CARGO_INCREMENTAL: "0"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install shells (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
run: sudo apt-get update -qq && sudo apt-get install -y -qq zsh fish
|
||||
|
||||
- name: Install shells (macOS)
|
||||
if: runner.os == 'macOS'
|
||||
run: brew install bash fish
|
||||
|
||||
- name: Select Homebrew Bash (macOS)
|
||||
if: runner.os == 'macOS'
|
||||
run: |
|
||||
echo "ATUIN_E2E_BASH=$(brew --prefix bash)/bin/bash" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Install ble.sh
|
||||
run: |
|
||||
mkdir -p "$HOME/.local/share"
|
||||
curl -fsSL https://github.com/akinomyoga/ble.sh/releases/download/v0.4.0-devel3/ble-0.4.0-devel3.tar.xz | tar xJ -C "$HOME/.local/share"
|
||||
mv "$HOME/.local/share/ble-0.4.0-devel3" "$HOME/.local/share/blesh"
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
name: Install nextest
|
||||
with:
|
||||
tool: cargo-nextest
|
||||
|
||||
# rust-cache (warm target skip) + sccache (serves compiled crates from
|
||||
# Depot's cross-branch cache); see the build job.
|
||||
- uses: mozilla-actions/sccache-action@v0.0.9
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: e2e
|
||||
|
||||
- name: Run fresh-install and PTY e2e tests
|
||||
run: cargo nextest run -p atuin --test 'e2e_*'
|
||||
env:
|
||||
ATUIN_E2E_REQUIRE_SHELLS: "1"
|
||||
|
||||
- name: sccache stats
|
||||
if: ${{ always() }}
|
||||
run: sccache --show-stats
|
||||
|
||||
clippy:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install latest rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
components: clippy
|
||||
|
||||
# rust-cache (see check job): sccache can't cache clippy's metadata builds.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: clippy
|
||||
|
||||
- name: Run clippy
|
||||
run: cargo clippy -- -D warnings
|
||||
|
||||
- name: Run clippy (tests)
|
||||
run: cargo clippy --tests -- -D warnings
|
||||
|
||||
docs:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install OpenSSL dev libraries (Linux)
|
||||
if: runner.os == 'Linux'
|
||||
uses: awalsh128/cache-apt-pkgs-action@v1.6.3
|
||||
with:
|
||||
packages: libssl-dev pkg-config
|
||||
version: 1.0
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
# rust-cache (see check job): sccache doesn't wrap rustdoc.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: doc
|
||||
|
||||
- name: Run cargo doc
|
||||
run: cargo doc --document-private-items --no-deps --workspace
|
||||
env:
|
||||
RUSTDOCFLAGS: -D warnings
|
||||
|
||||
format:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install nightly rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: nightly
|
||||
components: rustfmt
|
||||
|
||||
- name: Format
|
||||
run: cargo +nightly fmt -- --check
|
||||
|
||||
deny:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||
with:
|
||||
command: check
|
||||
|
||||
# atuin-common is a library crate; enforce (crate-scoped) that it never
|
||||
# (re)adds eyre or anyhow. Config: crates/atuin-common/deny.toml
|
||||
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||
with:
|
||||
manifest-path: crates/atuin-common/Cargo.toml
|
||||
command: check bans
|
||||
|
||||
# atuin-history is a library crate; enforce (crate-scoped) that it never
|
||||
# (re)adds eyre or anyhow. Config: crates/atuin-history/deny.toml
|
||||
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||
with:
|
||||
manifest-path: crates/atuin-history/Cargo.toml
|
||||
command: check bans
|
||||
|
||||
# atuin-domain is a library crate; enforce (crate-scoped) that it never
|
||||
# (re)adds eyre or anyhow. Config: crates/atuin-domain/deny.toml
|
||||
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||
with:
|
||||
manifest-path: crates/atuin-domain/Cargo.toml
|
||||
command: check bans
|
||||
|
||||
# atuin-pty-proxy is a library crate; enforce (crate-scoped) that it
|
||||
# never (re)adds eyre or anyhow. Config: crates/atuin-pty-proxy/deny.toml
|
||||
- uses: EmbarkStudios/cargo-deny-action@v2
|
||||
with:
|
||||
manifest-path: crates/atuin-pty-proxy/Cargo.toml
|
||||
command: check bans
|
||||
|
||||
package:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
# rust-cache (see check job): bounds target/ growth for the verify build.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: package
|
||||
|
||||
- name: Build packaged tarballs
|
||||
run: |
|
||||
rm -rf ~/.cargo/registry/{cache,src}/*/atuin*
|
||||
rm -rf target/package
|
||||
rm -rf target/{debug,release}/libatuin*.rlib
|
||||
rm -rf target/{debug,release}/deps/libatuin*
|
||||
rm -rf target/{debug,release}/.fingerprint/atuin*
|
||||
cargo package --workspace
|
||||
@@ -1,18 +0,0 @@
|
||||
name: Shellcheck
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
shellcheck:
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- name: Run shellcheck
|
||||
uses: ludeeus/action-shellcheck@2.0.0
|
||||
env:
|
||||
SHELLCHECK_OPTS: "-e SC2148"
|
||||
@@ -1,31 +0,0 @@
|
||||
name: Vale
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths:
|
||||
- "docs/docs/**"
|
||||
- ".vale.ini"
|
||||
- ".vale/styles/config/**"
|
||||
- ".github/workflows/vale.yml"
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
|
||||
jobs:
|
||||
vale:
|
||||
name: Lint docs prose
|
||||
runs-on: depot-ubuntu-24.04
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- uses: vale-cli/vale-action@v3.0.0
|
||||
with:
|
||||
version: "3.15.2"
|
||||
files: docs/docs
|
||||
filter_mode: nofilter
|
||||
fail_on_error: true
|
||||
level: warning
|
||||
vale_flags: "--minAlertLevel=warning"
|
||||
@@ -0,0 +1,122 @@
|
||||
name: Windows
|
||||
|
||||
# The rest of CI runs on Buildkite (.buildkite/pipeline.yml). Windows stays
|
||||
# here until Buildkite's hosted Windows agents are generally available.
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- "ui/**"
|
||||
pull_request:
|
||||
branches: [main]
|
||||
paths-ignore:
|
||||
- "ui/**"
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
|
||||
jobs:
|
||||
unit-test:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [depot-windows-2025-16]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
env:
|
||||
# sccache serves compiled objects from Depot's managed WebDAV cache; keep
|
||||
# incremental off (sccache can't cache incremental compilations).
|
||||
RUSTC_WRAPPER: sccache
|
||||
CARGO_INCREMENTAL: "0"
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
- uses: taiki-e/install-action@v2
|
||||
name: Install nextest
|
||||
with:
|
||||
tool: cargo-nextest
|
||||
|
||||
# rust-cache (warm target skip) + sccache (serves compiled crates from
|
||||
# Depot's cross-branch cache).
|
||||
- uses: mozilla-actions/sccache-action@v0.0.9
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: unit-test
|
||||
|
||||
- name: Run cargo test
|
||||
run: cargo nextest run --lib --bins
|
||||
|
||||
- name: sccache stats
|
||||
if: ${{ always() }}
|
||||
run: sccache --show-stats
|
||||
|
||||
- name: Show new proptest regressions
|
||||
if: ${{ failure() }}
|
||||
shell: bash
|
||||
run: |
|
||||
echo "::group::proptest regression files changed by this run"
|
||||
echo "A proptest failure appends a 'cc <seed>' line to a regression file."
|
||||
echo "New/changed regression files (download the artifact below to reproduce):"
|
||||
git add -N -- '*proptest-regressions*' || true
|
||||
git status --porcelain
|
||||
git --no-pager diff
|
||||
echo "::endgroup::"
|
||||
|
||||
- name: Upload proptest regressions
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: proptest-regressions-unit-${{ matrix.os }}
|
||||
path: |
|
||||
**/proptest-regressions/**
|
||||
**/*.proptest-regressions
|
||||
if-no-files-found: ignore
|
||||
retention-days: 14
|
||||
|
||||
check:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [depot-windows-2025-16]
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
|
||||
- name: Install rust
|
||||
uses: dtolnay/rust-toolchain@master
|
||||
with:
|
||||
toolchain: 1.98.0
|
||||
|
||||
# rust-cache, not sccache: check emits metadata only (no link), which
|
||||
# sccache refuses to cache.
|
||||
- uses: Swatinem/rust-cache@v2
|
||||
with:
|
||||
key: check
|
||||
|
||||
- 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
|
||||
|
||||
- name: Run cargo check (release profile)
|
||||
run: cargo check --workspace --locked --release
|
||||
@@ -12,7 +12,7 @@
|
||||
<hr/>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/atuinsh/atuin/actions?query=workflow%3ARust"><img src="https://img.shields.io/github/actions/workflow/status/atuinsh/atuin/rust.yml?style=flat-square" /></a>
|
||||
<a href="https://buildkite.com/atuin/atuin"><img src="https://badge.buildkite.com/6213f2ad159947780451bdc7fca76c8a8a0be3d3bca66b8a6d.svg?branch=main" /></a>
|
||||
<a href="https://crates.io/crates/atuin"><img src="https://img.shields.io/crates/v/atuin.svg?style=flat-square" /></a>
|
||||
<a href="https://crates.io/crates/atuin"><img src="https://img.shields.io/crates/d/atuin.svg?style=flat-square" /></a>
|
||||
<a href="https://github.com/atuinsh/atuin/blob/main/LICENSE"><img src="https://img.shields.io/crates/l/atuin.svg?style=flat-square" /></a>
|
||||
|
||||
Reference in new issue
Block a user