fix(bridge): re-introduce isPackagedElectron flag for java lib #612
Workflow file for this run
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: Test | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| env: | |
| CARGO_TERM_COLOR: always | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test-cargo: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2.7.3 | |
| - name: Build | |
| run: cargo build | |
| - name: Run tests | |
| run: cargo test | |
| timeout-minutes: 20 | |
| test-cargo-all: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2.7.3 | |
| - name: Build | |
| run: cargo build --all-features | |
| - name: Run tests | |
| run: cargo test --all-features | |
| timeout-minutes: 20 | |
| test-npm: | |
| strategy: | |
| matrix: | |
| include: | |
| - os: ubuntu-22.04 | |
| node-version: 20.x | |
| arch: x64 | |
| features: default | |
| - os: ubuntu-latest | |
| node-version: 22.x | |
| arch: x64 | |
| features: all | |
| - os: windows-latest | |
| node-version: 20.x | |
| arch: x64 | |
| features: default | |
| - os: windows-latest | |
| node-version: 22.x | |
| arch: x64 | |
| features: all | |
| - os: windows-latest | |
| node-version: 20.x | |
| arch: x86 | |
| features: default | |
| - os: windows-latest | |
| node-version: 22.x | |
| arch: x86 | |
| features: default | |
| - os: macos-latest | |
| node-version: 20.x | |
| arch: arm64 | |
| features: default | |
| - os: macos-latest | |
| node-version: 22.x | |
| arch: arm64 | |
| features: all | |
| runs-on: ${{matrix.os}} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup Node.js ${{matrix.node-version}} environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{matrix.node-version}} | |
| architecture: ${{matrix.arch}} | |
| - name: Setup java 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| architecture: ${{matrix.arch}} | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2.7.3 | |
| if: ${{matrix.os != 'ubuntu-latest' && matrix.os != 'ubuntu-20.04'}} | |
| - name: Install | |
| run: npm ci | |
| - name: Build | |
| if: ${{(matrix.os != 'windows-latest' || matrix.arch == 'x64') && matrix.features == 'default'}} | |
| run: npm run build | |
| - name: Build with all features | |
| if: ${{(matrix.os != 'windows-latest' || matrix.arch == 'x64') && matrix.features == 'all'}} | |
| run: npm run build:all | |
| - name: Build (win32) | |
| if: ${{matrix.os == 'windows-latest' && matrix.arch == 'x86'}} | |
| run: | | |
| rustup target add i686-pc-windows-msvc | |
| npm run build -- -- --target i686-pc-windows-msvc | |
| shell: bash | |
| - name: Run tests | |
| run: npm run testOnly | |
| timeout-minutes: 20 | |
| - name: Create test summary | |
| uses: test-summary/action@dist | |
| if: always() | |
| with: | |
| show: all | |
| paths: testResults.xml | |
| - name: Create package | |
| if: ${{matrix.node-version == '20.x'}} | |
| shell: bash | |
| run: | | |
| node -e 'let p=require("./package.json");p.files.push("dist/*.node");require("fs").writeFileSync("package.json",JSON.stringify(p,null,4))' | |
| npm pack | |
| - name: Upload package | |
| uses: actions/upload-artifact@v6 | |
| if: ${{matrix.node-version == '20.x'}} | |
| with: | |
| name: java-${{matrix.arch}}-${{matrix.os}} | |
| path: java-bridge-*.tgz | |
| test-linux-aarch64-gnu-binding: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [20, 22] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup Node.js ${{matrix.node-version}} environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{matrix.node-version}} | |
| - name: Setup java 17 | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Install rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| toolchain: stable | |
| targets: aarch64-unknown-linux-gnu | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2.7.3 | |
| - name: Install cross compile toolchain | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install gcc-multilib -y | |
| sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu -y | |
| - name: Set linker | |
| run: | | |
| mkdir .cargo | |
| printf '[target.aarch64-unknown-linux-gnu]\nlinker = "aarch64-linux-gnu-gcc"\n' >> .cargo/config | |
| - name: Install | |
| run: npm ci | |
| - name: Build | |
| run: npm run build -- -- --target aarch64-unknown-linux-gnu | |
| - name: Install test dependencies | |
| run: npm install | |
| - name: Init qemu | |
| run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
| - name: Run tests | |
| uses: addnab/docker-run-action@v3 | |
| timeout-minutes: 180 | |
| with: | |
| image: arm64v8/node:${{matrix.node-version}}-trixie | |
| options: -v ${{ github.workspace }}:/github/workspace -w /github/workspace --platform linux/arm64 | |
| run: | | |
| apt-get update | |
| apt-get install ca-certificates-java -y | |
| apt-get install openjdk-21-jre-headless -y | |
| apt-get remove -y openjdk-11* | |
| npm config set cache /tmp --global | |
| export CI=true | |
| npm install | |
| npm run testOnly | |
| - name: Create test summary | |
| uses: test-summary/action@dist | |
| if: always() | |
| with: | |
| show: all | |
| paths: testResults.xml | |
| - name: Create package | |
| if: ${{matrix.node-version == '20'}} | |
| run: | | |
| node -e 'let p=require("./package.json");p.files.push("dist/*.node");require("fs").writeFileSync("package.json",JSON.stringify(p,null,4))' | |
| npm pack | |
| - name: Upload package | |
| uses: actions/upload-artifact@v6 | |
| if: ${{matrix.node-version == '20'}} | |
| with: | |
| name: java-arm64-ubuntu | |
| path: java-bridge-*.tgz | |
| test-linux-musl-binding: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [20, 22] | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2.7.3 | |
| - name: Run tests | |
| uses: addnab/docker-run-action@v3 | |
| timeout-minutes: 180 | |
| with: | |
| image: ghcr.io/markusjx/node-java-bridge/java-bridge-node-alpine-build:node-${{matrix.node-version}}-jdk-17 | |
| options: -v ${{ github.workspace }}:/github/workspace -w /github/workspace | |
| run: | | |
| npm config set cache /tmp --global | |
| export CI=true | |
| npm ci | |
| npm test | |
| - name: Create test summary | |
| uses: test-summary/action@dist | |
| if: always() | |
| with: | |
| show: all | |
| paths: testResults.xml | |
| - name: Create package | |
| if: ${{matrix.node-version == '20'}} | |
| run: | | |
| node -e 'let p=require("./package.json");p.files.push("dist/*.node");require("fs").writeFileSync("package.json",JSON.stringify(p,null,4))' | |
| npm pack | |
| - name: Upload package | |
| uses: actions/upload-artifact@v6 | |
| if: ${{matrix.node-version == '20'}} | |
| with: | |
| name: java-x64-ubuntu-musl | |
| path: java-bridge-*.tgz | |
| benchmark: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup Node.js environment | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22.x | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| - name: Rust Cache | |
| uses: Swatinem/rust-cache@v2.7.3 | |
| - name: Install | |
| run: npm ci | |
| - name: Run benchmarks | |
| run: npm run benchmark | |
| timeout-minutes: 20 |