chore: Rename master branch to main branch
#2079
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
| # SPDX-FileCopyrightText: 2023 Shun Sakai | |
| # | |
| # SPDX-License-Identifier: Apache-2.0 OR MIT | |
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - "develop" | |
| - "main" | |
| schedule: | |
| - cron: "0 0 * * 0" | |
| env: | |
| CXX: "g++-14" | |
| jobs: | |
| check: | |
| name: Check | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os-alias: | |
| - ubuntu | |
| - macos | |
| - windows | |
| toolchain-alias: | |
| - msrv | |
| - stable | |
| include: | |
| - os-alias: ubuntu | |
| os: ubuntu-24.04 | |
| target: x86_64-unknown-linux-gnu | |
| - os-alias: macos | |
| os: macos-15 | |
| target: aarch64-apple-darwin | |
| - os-alias: windows | |
| os: windows-2025 | |
| target: x86_64-pc-windows-msvc | |
| - toolchain-alias: msrv | |
| toolchain: 1.88.0 | |
| - toolchain-alias: stable | |
| toolchain: stable | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| targets: ${{ matrix.target }} | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| with: | |
| key: ${{ matrix.target }} | |
| - name: Check packages | |
| run: cargo check --target ${{ matrix.target }} | |
| - name: Check packages (all features) | |
| run: cargo check -p abcrypt --target ${{ matrix.target }} --all-features | |
| - name: Check packages (no default features) | |
| run: cargo check -p abcrypt -p abcrypt-cli --target ${{ matrix.target }} --no-default-features | |
| - name: Check packages (`alloc` feature) | |
| run: cargo check -p abcrypt --target ${{ matrix.target }} --no-default-features -F alloc | |
| - name: Check packages (`serde` feature) | |
| run: cargo check -p abcrypt --target ${{ matrix.target }} -F serde | |
| - name: Check packages (`serde` feature with no default features) | |
| run: cargo check -p abcrypt --target ${{ matrix.target }} --no-default-features -F serde | |
| test: | |
| name: Test | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os-alias: | |
| - ubuntu | |
| - macos | |
| - windows | |
| toolchain-alias: | |
| - msrv | |
| - stable | |
| include: | |
| - os-alias: ubuntu | |
| os: ubuntu-24.04 | |
| target: x86_64-unknown-linux-gnu | |
| - os-alias: macos | |
| os: macos-15 | |
| target: aarch64-apple-darwin | |
| - os-alias: windows | |
| os: windows-2025 | |
| target: x86_64-pc-windows-msvc | |
| - toolchain-alias: msrv | |
| toolchain: 1.88.0 | |
| - toolchain-alias: stable | |
| toolchain: stable | |
| steps: | |
| - name: Set Git to use LF | |
| if: matrix.os == 'windows-2025' | |
| run: | | |
| git config --global core.autocrlf false | |
| git config --global core.eol lf | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| targets: ${{ matrix.target }} | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| with: | |
| key: ${{ matrix.target }} | |
| - name: Run tests | |
| run: cargo test -p abcrypt -p abcrypt-cli -p abcrypt-capi --target ${{ matrix.target }} | |
| - name: Run tests (all features) | |
| run: cargo test -p abcrypt --target ${{ matrix.target }} --all-features | |
| - name: Run tests (no default features) | |
| run: cargo test -p abcrypt -p abcrypt-cli --target ${{ matrix.target }} --no-default-features | |
| - name: Run tests (`alloc` feature) | |
| run: cargo test -p abcrypt --target ${{ matrix.target }} --no-default-features -F alloc | |
| - name: Run tests (`serde` feature) | |
| run: cargo test -p abcrypt --target ${{ matrix.target }} -F serde | |
| - name: Run tests (`serde` feature with no default features) | |
| run: cargo test -p abcrypt --target ${{ matrix.target }} --no-default-features -F serde | |
| - name: Check if the header file is up-to-date | |
| run: git diff --exit-code | |
| wasm-check: | |
| name: Check Wasm bindings | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| toolchain-alias: | |
| - msrv | |
| - stable | |
| include: | |
| - toolchain-alias: msrv | |
| toolchain: 1.88.0 | |
| - toolchain-alias: stable | |
| toolchain: stable | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Install wasm-pack | |
| uses: jetli/[email protected] | |
| with: | |
| version: "latest" | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Check a package | |
| run: wasm-pack build -s sorairolake -t nodejs --dev crates/wasm | |
| wasm-test: | |
| name: Test Wasm bindings | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| toolchain-alias: | |
| - msrv | |
| - stable | |
| include: | |
| - toolchain-alias: msrv | |
| toolchain: 1.88.0 | |
| - toolchain-alias: stable | |
| toolchain: stable | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Install wasm-pack | |
| uses: jetli/[email protected] | |
| with: | |
| version: "latest" | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Run tests | |
| run: wasm-pack test --node crates/wasm | |
| python-test: | |
| name: Test Python bindings | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os-alias: | |
| - ubuntu | |
| - macos | |
| - windows | |
| rust-version-alias: | |
| - msrv | |
| - stable | |
| python-version-alias: | |
| - minimum | |
| - latest | |
| include: | |
| - os-alias: ubuntu | |
| os: ubuntu-24.04 | |
| - os-alias: macos | |
| os: macos-15 | |
| - os-alias: windows | |
| os: windows-2025 | |
| - rust-version-alias: msrv | |
| rust-version: 1.88.0 | |
| - rust-version-alias: stable | |
| rust-version: stable | |
| - python-version-alias: minimum | |
| python-version: "3.10" | |
| - python-version-alias: latest | |
| python-version: "3.14" | |
| exclude: | |
| - os-alias: windows | |
| rust-version-alias: msrv | |
| python-version-alias: minimum | |
| steps: | |
| - name: Set Git to use LF | |
| if: matrix.os == 'windows-2025' | |
| run: | | |
| git config --global core.autocrlf false | |
| git config --global core.eol lf | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.rust-version }} | |
| - name: Setup uv | |
| uses: astral-sh/[email protected] | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| working-directory: crates/python | |
| enable-cache: true | |
| - name: Run tests | |
| run: uv run --directory crates/python pytest | |
| rustfmt: | |
| name: Rustfmt | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: nightly | |
| components: rustfmt | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Run formatter in check mode | |
| run: cargo fmt --check | |
| clippy: | |
| name: Clippy | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: stable | |
| components: clippy | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Run linter | |
| run: cargo clippy -- -D warnings | |
| - name: Run linter (all features) | |
| run: cargo clippy --all-features -- -D warnings | |
| - name: Run linter (no default features) | |
| run: cargo clippy --no-default-features -- -D warnings | |
| doc: | |
| name: Documentation | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: nightly | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Run linter | |
| env: | |
| RUSTDOCFLAGS: "--cfg docsrs -D warnings" | |
| run: cargo doc --workspace --exclude abcrypt-cli --no-deps --document-private-items --all-features | |
| benchmark: | |
| name: Benchmark | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: nightly | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Run benchmarks | |
| run: cargo bench -p abcrypt | |
| python-lint: | |
| name: Lint Python bindings | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: stable | |
| - name: Setup uv | |
| uses: astral-sh/[email protected] | |
| with: | |
| python-version: "3.14" # latest stable version of Python 3 | |
| working-directory: crates/python | |
| enable-cache: true | |
| - name: Run formatter in check mode | |
| run: uv run --directory crates/python ruff format --check . | |
| - name: Run linter | |
| run: uv run --directory crates/python ruff check . | |
| - name: Type-check | |
| run: uv run --directory crates/python ty check | |
| capi-examples: | |
| name: Examples for the C API | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| toolchain-alias: | |
| - msrv | |
| - stable | |
| include: | |
| - toolchain-alias: msrv | |
| toolchain: 1.88.0 | |
| - toolchain-alias: stable | |
| toolchain: stable | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.14" | |
| - name: Install Meson | |
| run: | | |
| pip install meson ninja | |
| meson -v | |
| - name: Setup just | |
| uses: extractions/setup-just@v3 | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Build examples for the C API | |
| run: just build-capi-examples | |
| - name: Run formatter in check mode | |
| run: | | |
| just clang-format | |
| git diff --exit-code | |
| - name: Run linter | |
| run: just clang-tidy | |
| wasm-examples: | |
| name: Examples for the Wasm bindings | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Rust toolchain | |
| uses: dtolnay/rust-toolchain@v1 | |
| with: | |
| toolchain: stable | |
| - name: Setup Deno | |
| uses: denoland/[email protected] | |
| with: | |
| deno-version: v2.x | |
| - name: Install wasm-pack | |
| uses: jetli/[email protected] | |
| with: | |
| version: "latest" | |
| - name: Cache build artifacts | |
| uses: Swatinem/[email protected] | |
| - name: Run formatter in check mode | |
| run: deno fmt --check deno.jsonc examples/*.ts | |
| working-directory: crates/wasm | |
| - name: Run linter | |
| run: deno lint examples/*.ts | |
| working-directory: crates/wasm | |
| - name: Build a package | |
| run: wasm-pack build -t deno crates/wasm | |
| - name: Type-check | |
| run: deno check examples/*.ts | |
| working-directory: crates/wasm | |
| prettier: | |
| name: Prettier | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| - name: Run formatter in check mode | |
| run: npx prettier -c "**.{hbs,json,md,yaml,yml}" "**/.clang-{format,tidy}" |