Skip to content

fix(gui): Move resign toggle into Resign options section #81

fix(gui): Move resign toggle into Resign options section

fix(gui): Move resign toggle into Resign options section #81

Workflow file for this run

name: CI
# Doc-only churn does not exercise any of the rust gates below, so paths-ignore
# skips runs whose entire diff is markdown / vault / license edits. Keeps the
# CI cost down without losing real signal.
concurrency:
group: ci-${{ github.ref_name }}
cancel-in-progress: true
on:
push:
branches:
- main
paths-ignore:
- '*.md'
- '**/*.md'
- 'ObsidianVault/**'
- 'LICENSE'
pull_request:
paths-ignore:
- '*.md'
- '**/*.md'
- 'ObsidianVault/**'
- 'LICENSE'
# Least privilege at the top level.
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -D warnings
CARGO_INCREMENTAL: "0"
jobs:
fmt-clippy:
name: fmt + clippy
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install Rust (toolchain pinned by rust-toolchain.toml)
# `dtolnay/rust-toolchain` always installs whatever its `toolchain:`
# input resolves to and attaches `components:` to THAT toolchain —
# independent of `rust-toolchain.toml`. Cargo then switches to the
# toml's pinned channel and finds no components there. rustup is
# preinstalled on ubuntu-latest, `rustup show` triggers the
# toml-driven install, then `component add` lands on the active
# pinned toolchain.
run: |
rustup show
rustup component add rustfmt clippy
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2
with:
key: fmt-clippy
- name: Install Linux GUI deps
# `dynobox-gui` (eframe + rfd) brings GUI dev libraries into the
# workspace; clippy compiles every crate so the deps need to be
# present even on the lint job.
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libxcb-render0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxkbcommon-dev \
libwayland-dev \
libssl-dev
- name: cargo fmt --check
run: cargo fmt --all -- --check
- name: cargo clippy -D warnings
run: cargo clippy --workspace --all-targets --locked -- -D warnings
cargo-deny:
name: cargo-deny
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install cargo-deny
uses: taiki-e/install-action@v2.87.1
with:
tool: cargo-deny
- name: Cache cargo-deny advisory DB
uses: actions/cache@v6
with:
path: ~/.cargo/advisory-dbs
key: cargo-deny-advisory-db-${{ runner.os }}-v1
restore-keys: |
cargo-deny-advisory-db-${{ runner.os }}-
- name: cargo deny check
# Advisories (RUSTSEC), license policy, banned crates, and dependency
# sources — config in deny.toml at the repo root.
run: cargo deny check
test:
name: test (${{ matrix.os }})
needs: [fmt-clippy, cargo-deny]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- windows-latest
- macos-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Install Rust (toolchain pinned by rust-toolchain.toml)
run: rustup show
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2
with:
key: test-${{ matrix.os }}
- name: Install Linux GUI deps
# `dynobox-gui` (eframe + rfd) GUI dev libs needed for the
# workspace test compile on bare ubuntu runners.
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y \
libgtk-3-dev \
libxcb-render0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxkbcommon-dev \
libwayland-dev \
libssl-dev
- name: cargo test --workspace
run: cargo test --workspace --locked