Improve the README #2112
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]> | |
# | |
# | |
on: [push, pull_request] | |
name: Base GitHub Action for Check, Test and Lints | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
# | |
check: | |
name: Check | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
# | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- run: | | |
echo "deb http://gb.archive.ubuntu.com/ubuntu jammy main" | sudo tee -a /etc/apt/sources.list | |
sudo apt update | |
sudo apt install -y libwebkit2gtk-4.1-dev \ | |
build-essential \ | |
curl \ | |
wget \ | |
file \ | |
libssl-dev \ | |
libgtk-3-dev \ | |
libayatana-appindicator3-dev \ | |
librsvg2-dev | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --bin mega --bin libra | |
- run: rustup component add clippy | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: --workspace --all-targets --all-features -- -D warnings | |
# | |
test: | |
name: Tests | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- run: | | |
sudo apt-get install -y git-lfs | |
git lfs install | |
git config --global user.email "[email protected]" | |
git config --global user.name "Mega" | |
git config --global lfs.url http://localhost:8000 | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: build | |
args: --bin mega --bin libra | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: test | |
args: --workspace --test '*' -- --nocapture | |
# | |
doc: | |
name: Doc | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: actions-rs/cargo@v1 | |
with: | |
command: doc | |
# | |
fuse: | |
name: Fuse Lints | |
runs-on: ubuntu-latest | |
needs: setup | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt-get update && sudo apt-get install -y fuse3 libfuse3-dev | |
- run: cd ./scorpio && cargo clippy --all-targets --all-features -- -D warnings | |
moon-lint-and-build: | |
name: MOON Lint & Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v3 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: "22" | |
cache: "npm" | |
cache-dependency-path: ./moon/package.json | |
- name: Install dependencies | |
working-directory: ./moon | |
run: npm install | |
- name: Run ESLint | |
working-directory: ./moon | |
run: npm run lint | |
- name: Build Next.js application | |
working-directory: ./moon | |
run: npm run build |