Repository navigation
fix: implement ref store batch writes #21
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
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - review_requested | |
| - ready_for_review | |
| - synchronize | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| linux: | |
| runs-on: ${{ matrix.platform.runner }} | |
| if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false) }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: ubuntu-24.04 | |
| target: x86_64 | |
| - runner: ubuntu-24.04 | |
| target: aarch64 | |
| - runner: ubuntu-24.04 | |
| target: armv7 | |
| - runner: ubuntu-24.04 | |
| target: s390x | |
| - runner: ubuntu-24.04 | |
| target: ppc64le | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # The toolchain comes from rust-toolchain.toml, which pins an exact | |
| # nightly: Nemo uses `#![feature(...)]`, so there is no stable build. | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| cache: true | |
| - uses: taiki-e/install-action@nextest | |
| - name: Build and compile project | |
| run: cargo nextest run --workspace --all-features --no-run | |
| # Single-threaded on purpose: Nemo's evaluator enters a process-global | |
| # timing mutex, so concurrent evaluations in one process panic and poison | |
| # it. See DEVPLAN.md 2.11. | |
| - name: Run tests | |
| run: cargo nextest run --workspace --all-features --test-threads=1 | |
| - name: Run doctests | |
| run: cargo test --doc --workspace --all-features -- --test-threads=1 | |
| musllinux: | |
| runs-on: ${{ matrix.platform.runner }} | |
| if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false) }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: ubuntu-24.04 | |
| target: x86_64 | |
| - runner: ubuntu-24.04 | |
| target: aarch64 | |
| - runner: ubuntu-24.04 | |
| target: armv7 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # The toolchain comes from rust-toolchain.toml, which pins an exact | |
| # nightly: Nemo uses `#![feature(...)]`, so there is no stable build. | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| cache: true | |
| - uses: taiki-e/install-action@nextest | |
| - name: Build and compile project | |
| run: cargo nextest run --workspace --all-features --no-run | |
| # Single-threaded on purpose: Nemo's evaluator enters a process-global | |
| # timing mutex, so concurrent evaluations in one process panic and poison | |
| # it. See DEVPLAN.md 2.11. | |
| - name: Run tests | |
| run: cargo nextest run --workspace --all-features --test-threads=1 | |
| - name: Run doctests | |
| run: cargo test --doc --workspace --all-features -- --test-threads=1 | |
| windows: | |
| runs-on: ${{ matrix.platform.runner }} | |
| if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false) }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: windows-latest | |
| target: x64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # The toolchain comes from rust-toolchain.toml, which pins an exact | |
| # nightly: Nemo uses `#![feature(...)]`, so there is no stable build. | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| cache: true | |
| - uses: taiki-e/install-action@nextest | |
| - name: Build and compile project | |
| run: cargo nextest run --workspace --all-features --no-run | |
| # Single-threaded on purpose: Nemo's evaluator enters a process-global | |
| # timing mutex, so concurrent evaluations in one process panic and poison | |
| # it. See DEVPLAN.md 2.11. | |
| - name: Run tests | |
| run: cargo nextest run --workspace --all-features --test-threads=1 | |
| - name: Run doctests | |
| run: cargo test --doc --workspace --all-features -- --test-threads=1 | |
| macos: | |
| runs-on: ${{ matrix.platform.runner }} | |
| if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false) }} | |
| strategy: | |
| matrix: | |
| platform: | |
| - runner: macos-14 | |
| target: aarch64 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # The toolchain comes from rust-toolchain.toml, which pins an exact | |
| # nightly: Nemo uses `#![feature(...)]`, so there is no stable build. | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| cache: true | |
| - uses: taiki-e/install-action@nextest | |
| - name: Build and compile project | |
| run: cargo nextest run --workspace --all-features --no-run | |
| # Single-threaded on purpose: Nemo's evaluator enters a process-global | |
| # timing mutex, so concurrent evaluations in one process panic and poison | |
| # it. See DEVPLAN.md 2.11. | |
| - name: Run tests | |
| run: cargo nextest run --workspace --all-features --test-threads=1 | |
| - name: Run doctests | |
| run: cargo test --doc --workspace --all-features -- --test-threads=1 | |
| ci: | |
| name: CI | |
| if: ${{ always() && (github.event_name == 'workflow_dispatch' || github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.draft == false)) }} | |
| needs: [linux, musllinux, windows, macos] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - run: | | |
| result="${{ (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) && 'failure' || 'success' }}" | |
| echo "result: $result" | |
| [[ "$result" == "success" ]] || exit 1 |