Fix/orion bugs fix #5321
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
| # 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 <eli@patch.sh> | |
| # 2. 2024-05-07: Update the `fuse` job to install `fuse3` and `libfuse3-dev` at 2024-05-07T16:00:00Z by Xiaoyang Han <lux1an216@gmail.com> | |
| # 3. 2025-02-27: Reconstruct the workflow and add `install-dep` action to support test on multiple platforms by Neon <yyk1249501542@gmail.com> | |
| # | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| paths-ignore: | |
| - "config/**" | |
| - "docker/**" | |
| - "docs/**" | |
| - "moon/**" | |
| - "scripts/**" | |
| - "toolchains/**" | |
| - ".github/workflows/web-**" | |
| name: Base GitHub Action for Check, Test and Lints | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| format: | |
| if: ${{ !(github.repository == 'web3infra-foundation/mega' && github.event_name == 'push') }} | |
| name: Rustfmt Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install nightly toolchain | |
| run: | | |
| rustup toolchain install nightly --profile minimal | |
| rustup component add rustfmt --toolchain nightly | |
| - run: cargo +nightly fmt --all --check | |
| # | |
| clippy: | |
| if: ${{ !(github.repository == 'web3infra-foundation/mega' && github.event_name == 'push') }} | |
| name: Clippy Check | |
| runs-on: ubuntu-latest | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUSTUP_TOOLCHAIN: stable | |
| RUSTC_WRAPPER: sccache | |
| SCCACHE_DIR: ${{ github.workspace }}/.sccache | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - name: Install system dependencies | |
| uses: ./.github/install-dep | |
| with: | |
| cache-key: sysdeps | |
| platform: ubuntu | |
| - name: Install sccache | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y sccache | |
| - name: Prepare sccache directory | |
| run: | | |
| mkdir -p "$SCCACHE_DIR" | |
| - name: Cache sccache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.SCCACHE_DIR }} | |
| key: sccache-${{ runner.os }}-stable-${{ hashFiles('**/Cargo.lock') }}-clippy | |
| restore-keys: | | |
| sccache-${{ runner.os }}-stable-${{ hashFiles('**/Cargo.lock') }}- | |
| sccache-${{ runner.os }}-stable- | |
| - name: Rust cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: base-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} | |
| cache-on-failure: true | |
| - name: Run cargo clippy | |
| run: | | |
| sccache --start-server || true | |
| cargo +stable clippy --all-targets --all-features -- -D warnings | |
| sccache --show-stats || true | |
| test: | |
| if: ${{ !(github.repository == 'web3infra-foundation/mega' && github.event_name == 'push') }} | |
| name: Full Test | |
| runs-on: ${{ fromJson(github.repository == 'web3infra-foundation/mega' && '["self-hosted","Linux","X64"]' || '"ubuntu-latest"') }} | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUSTUP_TOOLCHAIN: stable | |
| HOME: ${{ github.repository == 'web3infra-foundation/mega' && '/home/github' || '/home/runner' }} | |
| RUSTC_WRAPPER: sccache | |
| SCCACHE_DIR: ${{ github.workspace }}/.sccache | |
| steps: | |
| - name: Install Redis | |
| run: sudo apt-get update && sudo apt-get install -y redis-server | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| lfs: true | |
| - name: Install system dependencies | |
| uses: ./.github/install-dep | |
| with: | |
| cache-key: sysdeps | |
| platform: ubuntu | |
| self-hosted: ${{ github.repository == 'web3infra-foundation/mega' }} | |
| use-gtk: false | |
| - name: Install sccache | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y sccache | |
| - name: Prepare sccache directory | |
| run: | | |
| mkdir -p "$SCCACHE_DIR" | |
| - name: Cache sccache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ env.SCCACHE_DIR }} | |
| key: sccache-${{ runner.os }}-stable-${{ hashFiles('**/Cargo.lock') }}-test | |
| restore-keys: | | |
| sccache-${{ runner.os }}-stable-${{ hashFiles('**/Cargo.lock') }}- | |
| sccache-${{ runner.os }}-stable- | |
| - name: Rust cache | |
| uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: base-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }} | |
| cache-on-failure: true | |
| - name: Set up git lfs | |
| run: | | |
| echo "GPG_TTY=$(tty)" >> $GITHUB_ENV | |
| git lfs install | |
| git config --global user.email "mega@github.com" | |
| git config --global user.name "Mega" | |
| git config --global lfs.url http://localhost:8000 | |
| - name: Run cargo test | |
| run: | | |
| sccache --start-server || true | |
| cargo test --manifest-path common/Cargo.toml --all-features --no-fail-fast -- --nocapture | |
| cargo test --manifest-path jupiter/Cargo.toml --all-features --no-fail-fast -- --nocapture | |
| cargo test --manifest-path ceres/Cargo.toml --all-features --no-fail-fast -- --nocapture | |
| cargo test --manifest-path vault/Cargo.toml --all-features --no-fail-fast -- --nocapture | |
| cargo test --manifest-path saturn/Cargo.toml --all-features --no-fail-fast -- --nocapture | |
| cargo test --manifest-path orion-server/Cargo.toml --all-features --no-fail-fast -- --nocapture | |
| sccache --show-stats || true | |
| # Note: The fuse/scorpio job has been removed as scorpio has been moved | |
| # to its own repository: https://github.com/web3infra-foundation/scorpiofs |