feat(ui): add configurable shortcuts and settings reset #411
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |