Skip to content

feat(ui): add configurable shortcuts and settings reset #411

feat(ui): add configurable shortcuts and settings reset

feat(ui): add configurable shortcuts and settings reset #411

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
version:
name: Version Checks
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Validate release version format
shell: bash
run: |
set -euo pipefail
current_version="$(
awk '
/^[[:space:]]*\[package\][[:space:]]*$/ { in_package = 1; next }
/^[[:space:]]*\[/ { in_package = 0 }
in_package && /^[[:space:]]*version[[:space:]]*=[[:space:]]*/ { print $3; exit }
' Cargo.toml | tr -d '"'
)"
[[ -n "$current_version" ]] || {
echo "failed to determine package version from Cargo.toml" >&2
exit 1
}
[[ "$current_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || {
echo "release automation only supports Cargo.toml versions in X.Y.Z format, found: $current_version" >&2
exit 1
}
rust:
name: Rust Checks
needs: [version]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Install native build dependencies
run: |
sudo apt-get update
sudo apt-get install -y build-essential gcc libc6-dev
- name: Resolve Rust toolchain
id: rust-toolchain
shell: bash
run: |
set -euo pipefail
toolchain="$(
awk -F '"' '/^[[:space:]]*channel[[:space:]]*=[[:space:]]*"/ { print $2; exit }' rust-toolchain.toml
)"
[[ -n "$toolchain" ]] || {
echo "failed to determine Rust toolchain from rust-toolchain.toml" >&2
exit 1
}
echo "toolchain=$toolchain" >> "$GITHUB_OUTPUT"
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
with:
toolchain: ${{ steps.rust-toolchain.outputs.toolchain }}
components: rustfmt, clippy
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2
- name: Format check
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --workspace --all-targets --all-features -- -D warnings
- name: Tests
run: cargo test --workspace --all-targets --all-features --locked
wasm:
name: WebAssembly Checks
needs: [version]
if: github.event_name == 'pull_request' || (github.event_name == 'push' && github.ref == 'refs/heads/master')
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
persist-credentials: false
- name: Resolve Rust toolchain
id: rust-toolchain
shell: bash
run: |
set -euo pipefail
toolchain="$(
awk -F '"' '/^[[:space:]]*channel[[:space:]]*=[[:space:]]*"/ { print $2; exit }' rust-toolchain.toml
)"
if [[ -z "$toolchain" ]]; then
echo "Could not determine the Rust toolchain from rust-toolchain.toml." >&2
exit 1
fi
echo "toolchain=$toolchain" >> "$GITHUB_OUTPUT"
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@6c977a6ca4077a0ceb28ffbe03f59d46e9ac8772 # master
with:
toolchain: ${{ steps.rust-toolchain.outputs.toolchain }}
components: clippy
targets: wasm32-unknown-unknown
- name: Cache cargo artifacts
uses: Swatinem/rust-cache@v2
with:
shared-key: ci-wasm
- name: Clippy WebAssembly targets
run: cargo clippy --locked --target wasm32-unknown-unknown --all-targets --no-default-features -- -D warnings
gitleaks:
name: Secret Scan
needs: [version]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Install gitleaks
run: |
sudo apt-get update
sudo apt-get install -y gitleaks
- name: Run gitleaks
run: gitleaks detect --source . --verbose --redact