fix[mercury]: update outdated doc test. #2879
This file contains 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
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md | |
# | |
# History: | |
# 1. 2023-02-14: Created at 2023-02-14T16:00:00Z by Quanyi Ma <[email protected]> | |
# 2. 2024-05-07: Update the `fuse` job to install `fuse3` and `libfuse3-dev` at 2024-05-07T16:00:00Z by Xiaoyang Han <[email protected]> | |
# 3. 2025-02-27: Reconstruct the workflow and add `install-dep` action to support test on multiple platforms by Neon <[email protected]> | |
# | |
on: [push, pull_request] | |
name: Base GitHub Action for Check, Test and Lints | |
jobs: | |
# cache files before all jobs | |
setup: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
name: Setup and cache ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
env: | |
CARGO_TERM_COLOR: always | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Rust Toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: clippy rustfmt | |
cache-workspaces: | | |
./ | |
./scorpio | |
./monobean | |
cache-directories: | | |
./target | |
./scorpio/target | |
./monobean/target | |
# | |
format: | |
name: Rustfmt Check | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- run: cargo fmt --all -- --check | |
# | |
clippy: | |
name: Clippy for ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
needs: setup | |
env: | |
CARGO_TERM_COLOR: always | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install system dependencies | |
uses: ./.github/install-dep | |
with: | |
cache-key: sysdeps | |
platform: ${{ matrix.os }} | |
- name: Run cargo clippy | |
run: | | |
cargo build --bin mega --bin libra | |
cargo clippy --workspace --all-targets --all-features -- -D warnings | |
# | |
test: | |
name: Test for ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
needs: setup | |
env: | |
CARGO_TERM_COLOR: always | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install system dependencies | |
uses: ./.github/install-dep | |
with: | |
cache-key: sysdeps | |
platform: ${{ matrix.os }} | |
- name: Set up git lfs | |
run: | | |
git lfs install | |
git config --global user.email "[email protected]" | |
git config --global user.name "Mega" | |
git config --global lfs.url http://localhost:8000 | |
- name: Run cargo test | |
run: | | |
cargo build --bin mega --bin libra | |
cargo test --workspace --all-features --all --no-fail-fast | |
# | |
monobean: | |
name: Test Monobean for ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
needs: setup | |
env: | |
CARGO_TERM_COLOR: always | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install system dependencies | |
uses: ./.github/install-dep | |
with: | |
cache-key: sysdeps | |
platform: ${{ matrix.os }} | |
- name: Run Lints | |
run: | | |
cargo clippy --manifest-path monobean/Cargo.toml --all-targets --all-features -- -D warnings | |
cargo test --manifest-path monobean/Cargo.toml --all-features --all --no-fail-fast -- --nocapture | |
# | |
fuse: | |
name: Fuse Lints | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-rust-lang/setup-rust-toolchain@v1 | |
- run: cargo clippy --manifest-path scorpio/Cargo.toml --all-targets --all --all-features -- -D warnings | |
moon-lint-and-build: | |
name: MOON Lint & Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Set up pnpm | |
uses: pnpm/action-setup@v4 | |
with: | |
version: 9 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "22" | |
cache: "pnpm" | |
cache-dependency-path: ./moon/package.json | |
- name: Install dependencies | |
working-directory: ./moon | |
run: pnpm i --frozen-lockfile | |
- name: Run ESLint | |
working-directory: ./moon | |
run: pnpm run lint | |
- name: Build Next.js application | |
working-directory: ./moon | |
run: pnpm run build |