name: CI on: # push: # branches: [] pull_request: branches: [develop] # Avoid running the same CI multiple times for the same PR concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: # Job 1: Check markdown files markdown: name: Markdown Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Lint Markdown files uses: DavidAnson/markdownlint-cli2-action@v22 with: globs: '**/*.md' # Job 2: Check code style (very fast) style: name: Format & Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Nightly Rust uses: dtolnay/rust-toolchain@nightly with: components: rustfmt, clippy - name: Check Formatting # This now works with cargo +nightly fmt run: make fmt-check - name: Lint with Clippy run: make lint docs: name: Documentation Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install mdBook uses: taiki-e/install-action@v2 with: tool: mdbook - name: Build documentation run: make docs frontend: name: Frontend Build runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust Tools uses: taiki-e/install-action@v2 with: tool: trunk,wasm-bindgen-cli,mdbook - name: Install Stable Rust uses: dtolnay/rust-toolchain@stable with: targets: wasm32-unknown-unknown - name: Rust Cache uses: Swatinem/rust-cache@v2 with: cache-targets: "true" - name: Install wasm tools 128 run: | chmod +x ./bin/install_wasm_tools.sh WASM_TOOLS_BIN="$(./bin/install_wasm_tools.sh 128)" echo "${WASM_TOOLS_BIN}" >> "$GITHUB_PATH" - name: Build frontend with wasm-opt run: | chmod +x ./bin/build_docs.sh ./bin/build_fe.sh ./bin/build_fe.sh release # Job 3: Build and Test (takes longer) test: name: Build & Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Stable Rust uses: dtolnay/rust-toolchain@stable - name: Rust Cache # This magic step saves compiled dependencies between runs uses: Swatinem/rust-cache@v2 - name: Run Tests run: make test