Repository navigation
Remove Continue-As-New and InternalHandlerTimeout; rename FlowExecutionID to FlowRunID #425
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: Java examples CI | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "examples/java/**" | |
| - "examples/entity-store/**" | |
| - ".github/workflows/examples-java-ci.yml" | |
| pull_request: | |
| paths: | |
| - "examples/java/**" | |
| - "examples/entity-store/**" | |
| - ".github/workflows/examples-java-ci.yml" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: examples-java-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| unit: | |
| name: Build + unit tests (Java ${{ matrix.java-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java-version: ["17", "21", "25", "26"] | |
| defaults: | |
| run: | |
| working-directory: examples/java | |
| steps: | |
| - uses: actions/checkout@v7 | |
| # Gradle 9 needs JDK 17+; matrix JDKs are auto-provisioned toolchains. | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: zulu | |
| java-version: "25" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v6 | |
| - name: Build and unit tests | |
| run: ./gradlew test --tests 'io.superdurable.dex.products.*' --tests 'io.superdurable.dex.patterns.*' --refresh-dependencies "-PjavaVersion=${{ matrix.java-version }}" | |
| - name: Verify published SDK coordinate | |
| run: | | |
| ./gradlew dependencyInsight --dependency dex-sdk --configuration compileClasspath \ | |
| | tee /tmp/dex-sdk-insight.txt | |
| # Assert Maven Central coordinate (group:artifact), not a composite/project dep. | |
| # Version lives only in build.gradle — do not pin it here. | |
| grep -qE 'io\.superdurable:dex-sdk:[0-9]' /tmp/dex-sdk-insight.txt | |
| if grep -E 'project :|ProjectDependency' /tmp/dex-sdk-insight.txt; then | |
| echo "examples/java must depend on published dex-sdk, not a Gradle project" | |
| exit 1 | |
| fi | |
| integ: | |
| name: Integration tests (zd) | |
| runs-on: ubuntu-latest | |
| env: | |
| DEX_INTEG_ENGINE: zd | |
| DEX_SERVER_ZD_BINARY: ${{ github.workspace }}/server-zd/target/debug/dex-server-zd | |
| # These CARGO_* and RUST* values match Server ZD CI, so its main cache restores here. | |
| CARGO_TERM_COLOR: always | |
| CARGO_INCREMENTAL: "0" | |
| RUST_BACKTRACE: "1" | |
| RUSTUP_TOOLCHAIN: "1.97.1" | |
| CARGO_BUILD_JOBS: "4" | |
| defaults: | |
| run: | |
| working-directory: examples/java | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Rust | |
| run: rustup toolchain install 1.97.1 --profile minimal | |
| - name: Install libclang for RocksDB | |
| run: sudo apt-get update && sudo apt-get install -y libclang-dev | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| workspaces: server-zd | |
| shared-key: server-zd-paradedb | |
| # Restore-only: the Server ZD CI ParadeDB job owns this key. | |
| save-if: false | |
| - name: Build dex-server-zd | |
| working-directory: server-zd | |
| run: cargo build --locked -p dexzd-server --bin dex-server-zd | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: cli/go.mod | |
| cache-dependency-path: | | |
| cli/go.sum | |
| web/go.sum | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: zulu | |
| java-version: "25" | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v6 | |
| - name: Integration tests with dexcli dev | |
| run: ./run-integration-tests.sh | |
| - name: Upload service logs | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: java-examples-integration-services-zd | |
| path: /tmp/test-java-examples-integration-services.log | |
| if-no-files-found: ignore |