feat: expose GC, WASI, threads, and reference types in Chicory provider #24
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] | |
| jobs: | |
| # Core modules (Java 11) — test on all platforms and Java versions | |
| test-core: | |
| name: Core Java ${{ matrix.java }} (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Linux x86_64 | |
| - os: ubuntu-latest | |
| java: '11' | |
| - os: ubuntu-latest | |
| java: '17' | |
| - os: ubuntu-latest | |
| java: '21' | |
| # Linux ARM64 | |
| - os: ubuntu-24.04-arm | |
| java: '11' | |
| - os: ubuntu-24.04-arm | |
| java: '17' | |
| - os: ubuntu-24.04-arm | |
| java: '21' | |
| # macOS ARM64 | |
| - os: macos-latest | |
| java: '11' | |
| - os: macos-latest | |
| java: '17' | |
| - os: macos-latest | |
| java: '21' | |
| # Windows x86_64 | |
| - os: windows-latest | |
| java: '11' | |
| - os: windows-latest | |
| java: '17' | |
| - os: windows-latest | |
| java: '21' | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| java-version: ${{ matrix.java }} | |
| distribution: 'temurin' | |
| - name: Cache Maven | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.m2/repository | |
| key: m2-core-${{ matrix.os }}-${{ matrix.java }}-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: | | |
| m2-core-${{ matrix.os }}-${{ matrix.java }}- | |
| m2-core-${{ matrix.os }}- | |
| - name: Build and test core modules (Java 11) | |
| if: matrix.java == '11' | |
| shell: bash | |
| run: | | |
| ./mvnw test -B -q \ | |
| -pl webassembly4j-api,webassembly4j-spi,chicory4j-provider,webassembly4j-runtime,webassembly4j-testing,webassembly4j-pool,webassembly4j-bindgen \ | |
| -am | |
| - name: Build and test all modules (Java 17+) | |
| if: matrix.java != '11' | |
| shell: bash | |
| run: | | |
| ./mvnw test -B -q \ | |
| -pl webassembly4j-api,webassembly4j-spi,chicory4j-provider,graalwasm4j-provider,webassembly4j-runtime,webassembly4j-testing,webassembly4j-pool,webassembly4j-spring,webassembly4j-bindgen \ | |
| -am | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-results-${{ matrix.os }}-java${{ matrix.java }} | |
| path: '**/target/surefire-reports/' | |
| retention-days: 7 | |
| # Static analysis and compilation quality gate | |
| quality: | |
| name: Code Quality | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-java@v4 | |
| with: | |
| java-version: '23' | |
| distribution: 'temurin' | |
| - name: Cache Maven | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.m2/repository | |
| key: m2-quality-${{ hashFiles('**/pom.xml') }} | |
| restore-keys: m2-quality- | |
| - name: Compile all modules | |
| run: ./mvnw compile -B -q -pl '!webassembly4j-benchmarks' | |
| - name: Install dependencies for javadoc | |
| run: ./mvnw install -B -q -DskipTests -Dmaven.javadoc.skip=true -pl webassembly4j-api,webassembly4j-spi,webassembly4j-runtime -am | |
| - name: Javadoc | |
| run: ./mvnw javadoc:javadoc -B -q -pl webassembly4j-api,webassembly4j-spi,webassembly4j-runtime |