Fix build.yml: add double -- separator for Yarn v1 cargo flag forwarding #12
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: Build | |
| on: | |
| push: | |
| pull_request: | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.head_ref || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| rust-quality: | |
| name: Rust Quality (fmt + clippy) | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Install Rust (rust-toolchain.toml) | |
| uses: dtolnay/rust-toolchain@1.93.0 | |
| with: | |
| components: rustfmt, clippy | |
| - name: Install Tauri build dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf | |
| - name: Cargo.lock fingerprint (deps only) | |
| id: cargo-lock-fingerprint | |
| shell: bash | |
| run: | | |
| echo "hash=$(tail -n +8 Cargo.lock | openssl dgst -sha256 | awk '{print $2}')" >> "$GITHUB_OUTPUT" | |
| - name: Cache Cargo registry and git sources | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| key: ${{ runner.os }}-cargo-registry-${{ steps.cargo-lock-fingerprint.outputs.hash }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-registry- | |
| - name: Check formatting (cargo fmt) | |
| run: cargo fmt --all -- --check | |
| - name: Run clippy (core crate) | |
| run: cargo clippy -p openhuman | |
| build: | |
| name: Build Tauri App (${{ matrix.settings.label }}) | |
| needs: rust-quality | |
| runs-on: ${{ matrix.settings.platform }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| settings: | |
| - platform: ubuntu-22.04 | |
| target: x86_64-unknown-linux-gnu | |
| label: Linux x86_64 | |
| - platform: macos-latest | |
| target: aarch64-apple-darwin | |
| label: macOS ARM64 | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| submodules: true | |
| - name: Setup Node.js 24.x | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24.x | |
| cache: "yarn" | |
| - name: Install Rust (rust-toolchain.toml) | |
| uses: dtolnay/rust-toolchain@1.93.0 | |
| with: | |
| targets: ${{ matrix.settings.target }} | |
| - name: Install Tauri dependencies (Linux) | |
| if: matrix.settings.platform == 'ubuntu-22.04' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf | |
| # Skip first 7 lines of Cargo.lock (workspace package version bumps) so the key tracks dependency changes only | |
| - name: Cargo.lock fingerprint (deps only) | |
| id: cargo-lock-fingerprint | |
| shell: bash | |
| run: | | |
| echo "hash=$(tail -n +8 Cargo.lock | openssl dgst -sha256 | awk '{print $2}')" >> "$GITHUB_OUTPUT" | |
| - name: Cache Cargo registry and git sources | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| key: ${{ runner.os }}-cargo-registry-${{ steps.cargo-lock-fingerprint.outputs.hash }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-registry- | |
| - name: Cache node modules | |
| id: yarn-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: node_modules | |
| key: ${{ runner.os }}-build-${{ hashFiles('**/yarn.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-build- | |
| - name: Install dependencies | |
| if: steps.yarn-cache.outputs.cache-hit != 'true' | |
| run: yarn install --frozen-lockfile | |
| - name: Build sidecar core binary | |
| run: cargo build --manifest-path Cargo.toml --release --target ${{ matrix.settings.target }} --bin openhuman | |
| - name: Stage sidecar for Tauri bundler | |
| shell: bash | |
| run: | | |
| mkdir -p app/src-tauri/binaries | |
| cp target/${{ matrix.settings.target }}/release/openhuman app/src-tauri/binaries/openhuman-${{ matrix.settings.target }} | |
| chmod +x app/src-tauri/binaries/openhuman-${{ matrix.settings.target }} | |
| - name: Build Tauri app | |
| working-directory: app | |
| run: | | |
| TAURI_CONFIG_OVERRIDE='{"bundle":{"createUpdaterArtifacts":false}}' | |
| yarn tauri build -c "$TAURI_CONFIG_OVERRIDE" --bundles none --target ${{ matrix.settings.target }} -- -- --bin OpenHuman | |
| env: | |
| NODE_ENV: production |