hunk.code_window:           playwright-install: true
         - name: Build AFFiNE native
           uses: ./.github/actions/build-rust
           with:
             target: ${{ matrix.spec.target }}
         - name: Run unit tests
           if: ${{ matrix.spec.test }}
           shell: bash
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit:           nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
  
hunk.file_path: .github/workflows/build.yml
hunk.type: add
file: name: 'AFFiNE Rust build'
  description: 'Rust build setup, including cache configuration'
  inputs:
    target:
      description: 'Cargo target'
      required: true
  
  runs:
    using: 'composite'
    steps:
      - name: Setup Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: stable
          targets: ${{ inputs.target }}
  
      - name: Cache cargo
        uses: actions/cache@v3
        with:
          path: |
            ~/.cargo/registry/index/
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            .cargo-cache
            target/${{ inputs.target }}
          key: stable-${{ inputs.target }}-cargo-cache
  
      - name: Build
        if: ${{ inputs.target != 'x86_64-unknown-linux-gnu' && inputs.target != 'aarch64-unknown-linux-gnu' }}
        shell: bash
        run: yarn nx build @affine/native --target ${{ inputs.target }}
  
      - name: Build
        if: ${{ inputs.target == 'x86_64-unknown-linux-gnu' }}
        uses: addnab/docker-run-action@v3
        with:
          image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
          options: --user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build
          run: >-
            export CC=x86_64-unknown-linux-gnu-gcc &&
            export CC_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-gcc &&
            yarn nx build @affine/native --target ${{ inputs.target }} &&
            chmod -R 777 node_modules/.cache
  
      - name: Build
        if: ${{ inputs.target == 'aarch64-unknown-linux-gnu' }}
        uses: addnab/docker-run-action@v3
        with:
          image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
          options: --user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build
          run: >-
            yarn nx build @affine/native --target ${{ inputs.target }}
  