release: prepare native memory 0.6.0 #48
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: | |
| branches: [main] | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| validate: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 | |
| with: | |
| bun-version-file: package.json | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 | |
| with: | |
| toolchain: 1.97.0 | |
| components: rustfmt, clippy | |
| - name: Setup Protobuf | |
| uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 | |
| with: | |
| version: "35.1" | |
| repo-token: ${{ github.token }} | |
| - name: Install dependencies | |
| run: bun ci | |
| - name: Verify generated protocol | |
| run: bun run generate:protocol:check | |
| - name: Check formatting | |
| run: bun run format:check | |
| - name: Typecheck and test TypeScript | |
| run: bun run typecheck && bun run test:ts | |
| - name: Check Rust | |
| run: cargo clippy --all-targets --locked -- -D warnings | |
| - name: Test Rust | |
| run: cargo test --locked --lib | |
| - name: Test TypeScript/Rust Protobuf interop | |
| run: bun run build:native && bun run test:protocol | |
| - name: Build package | |
| run: bun run build | |
| - name: Verify generated dist | |
| run: git diff --exit-code -- dist | |
| - name: Validate release versions and npm tarball | |
| run: bun run versions:check && bun run pack:check | |
| - name: Audit JavaScript dependencies | |
| run: bun audit | |
| macos-metal: | |
| name: macOS Metal | |
| runs-on: macos-14 | |
| timeout-minutes: 45 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4 | |
| with: | |
| toolchain: 1.97.0 | |
| targets: aarch64-apple-darwin | |
| components: clippy | |
| - name: Setup Protobuf | |
| uses: arduino/setup-protoc@c65c819552d16ad3c9b72d9dfd5ba5237b9c906b # v3.0.0 | |
| with: | |
| version: "35.1" | |
| repo-token: ${{ github.token }} | |
| - name: Check Rust with Metal | |
| run: cargo clippy --all-targets --locked --features metal -- -D warnings | |
| - name: Test Rust with Metal | |
| run: cargo test --locked --lib --features metal | |
| - name: Build macOS native daemon with Metal | |
| run: cargo build --release --locked --target aarch64-apple-darwin --features metal | |
| dependency-review: | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Review dependency changes | |
| uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 |