aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows/rust.yml
diff options
context:
space:
mode:
authorEllie Huxtable <ellie@elliehuxtable.com>2024-04-11 16:59:01 +0100
committerGitHub <noreply@github.com>2024-04-11 16:59:01 +0100
commit6cd4319fcf540ef70f74cc2f10d0d4297ee7b788 (patch)
tree3d24dbf70493c377e162d9941faac65c829623f9 /.github/workflows/rust.yml
parentfeat(bash/blesh): use _ble_exec_time_ata for duration even in bash < 5 (#1940) (diff)
downloadatuin-6cd4319fcf540ef70f74cc2f10d0d4297ee7b788.zip
feat(gui): add base structure (#1935)
* initial * ui things * cargo * update, add history refresh button * history page a bit better, add initial dotfiles page * re-org layout * bye squigglies * add dotfiles ui, show aliases * add default shell detection * put stats in a little drawer, alias import changes * use new table for aliases, add alias deleting * support adding aliases * close drawer when added, no alias autocomplete * clippy, format * attempt to ensure gdk is installed ok * sudo * no linux things on mac ffs * I forgot we build for windows too... end of day * remove tauri backend from workspace
Diffstat (limited to '.github/workflows/rust.yml')
-rw-r--r--.github/workflows/rust.yml288
1 files changed, 169 insertions, 119 deletions
diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml
index a26e2e85..a824891e 100644
--- a/.github/workflows/rust.yml
+++ b/.github/workflows/rust.yml
@@ -2,9 +2,9 @@ name: Rust
on:
push:
- branches: [ main ]
+ branches: [main]
pull_request:
- branches: [ main ]
+ branches: [main]
env:
CARGO_TERM_COLOR: always
@@ -17,32 +17,45 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
+ - uses: actions/cache@v3
+ 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: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
- - name: Run cargo build client
- run: cargo build -p atuin-client --locked --release
+ - name: Run cargo build common
+ run: cargo build -p atuin-common --locked --release
- - name: Run cargo build server
- run: cargo build -p atuin-server --locked --release
+ - name: Run cargo build client
+ run: cargo build -p atuin-client --locked --release
- - name: Run cargo build main
- run: cargo build --all --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:
@@ -54,32 +67,32 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install cross
- uses: taiki-e/install-action@v1
- with:
- tool: cross
+ - name: Install cross
+ uses: taiki-e/install-action@v1
+ with:
+ tool: cross
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${{ matrix.target }}-cross-compile-${{ hashFiles('**/Cargo.lock') }}
+ - uses: actions/cache@v3
+ 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 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 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 server
+ run: cross build -p atuin-server --locked --target ${{ matrix.target }}
- - name: Run cross build main
- run: cross build --all --locked --target ${{ matrix.target }}
+ - name: Run cross build main
+ run: cross build --all --locked --target ${{ matrix.target }}
unit-test:
strategy:
@@ -88,29 +101,41 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: taiki-e/install-action@v2
- name: Install nextest
- with:
- tool: cargo-nextest
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+ - uses: taiki-e/install-action@v2
+ name: Install nextest
+ with:
+ tool: cargo-nextest
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - uses: actions/cache@v3
+ 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
+ - name: Run cargo test
+ run: cargo nextest run --lib --bins
check:
strategy:
@@ -119,35 +144,48 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - uses: actions/cache@v3
+ 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 (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 (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 (sync)
+ run: cargo check --no-default-features --features sync --workspace
- - name: Run cargo check (server)
- run: cargo check --no-default-features --features server --workspace
+ - name: Run cargo check (server)
+ run: cargo check --no-default-features --features server --workspace
- - name: Run cargo check (client only)
- run: cargo check --no-default-features --features client --workspace
+ - name: Run cargo check (client only)
+ run: cargo check --no-default-features --features client --workspace
integration-test:
runs-on: ubuntu-latest
@@ -163,66 +201,78 @@ jobs:
- 5432:5432
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
- - uses: taiki-e/install-action@v2
- name: Install nextest
- with:
- tool: cargo-nextest
-
+ - uses: taiki-e/install-action@v2
+ name: Install nextest
+ with:
+ tool: cargo-nextest
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${ runner.os }-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - uses: actions/cache@v3
+ 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
+ - name: Run cargo test
+ run: cargo nextest run --test '*'
+ env:
+ ATUIN_DB_URI: postgres://atuin:pass@localhost:5432/atuin
clippy:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install latest rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install latest rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
components: clippy
- - uses: actions/cache@v3
- with:
- path: |
- ~/.cargo/registry
- ~/.cargo/git
- target
- key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+ - name: Install dependencies
+ if: matrix.os != 'macos-14' && matrix.os != 'windows-latest'
+ run: |
+ sudo apt update
+ sudo apt install libwebkit2gtk-4.1-dev \
+ build-essential \
+ curl \
+ wget \
+ file \
+ libssl-dev \
+ libayatana-appindicator3-dev \
+ librsvg2-dev
+
+ - uses: actions/cache@v3
+ with:
+ path: |
+ ~/.cargo/registry
+ ~/.cargo/git
+ target
+ key: ${{ runner.os }}-cargo-debug-${{ hashFiles('**/Cargo.lock') }}
+
+ - name: Run clippy
+ run: cargo clippy -- -D warnings
- - name: Run clippy
- run: cargo clippy -- -D warnings
-
format:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v3
- - name: Install latest rust
- uses: dtolnay/rust-toolchain@master
- with:
+ - name: Install latest rust
+ uses: dtolnay/rust-toolchain@master
+ with:
toolchain: stable
components: rustfmt
- - name: Format
- run: cargo fmt -- --check
+ - name: Format
+ run: cargo fmt -- --check