Repository navigation
Python and TypeScript SDKs: upload Flow Definition Graphs to the Dex Server #1881
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 SDK CI | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "sdk-java/**" | |
| - "sdk-rust/Cargo.lock" | |
| - "sdk-rust/Cargo.toml" | |
| - "sdk-rust/crates/dex-blob-cache/**" | |
| - "sdk-rust/crates/dex-blob-cache-jni/**" | |
| - "cli/**" | |
| - "web/**" | |
| - "server-zd/**" | |
| - "s3local/**" | |
| - "protos/**" | |
| - "codecov.yml" | |
| - ".github/workflows/sdk-java-ci.yml" | |
| - ".github/workflows/sdk-java-publish.yml" | |
| pull_request: | |
| paths: | |
| - "sdk-java/**" | |
| - "sdk-rust/Cargo.lock" | |
| - "sdk-rust/Cargo.toml" | |
| - "sdk-rust/crates/dex-blob-cache/**" | |
| - "sdk-rust/crates/dex-blob-cache-jni/**" | |
| - "cli/**" | |
| - "web/**" | |
| - "server-zd/**" | |
| - "s3local/**" | |
| - "protos/**" | |
| - "codecov.yml" | |
| - ".github/workflows/sdk-java-ci.yml" | |
| - ".github/workflows/sdk-java-publish.yml" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: sdk-java-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| contracts: | |
| name: Unit tests and user contracts (Java ${{ matrix.java-version }}) | |
| runs-on: ubuntu-latest | |
| env: | |
| RUSTUP_TOOLCHAIN: "1.97.1" | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java-version: ["8", "17", "21", "25", "26"] | |
| defaults: | |
| run: | |
| working-directory: sdk-java | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Rust | |
| run: rustup toolchain install 1.97.1 --profile minimal | |
| # 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: Compile IWF integration ports | |
| run: ./gradlew compileTestJava --no-daemon | |
| - name: Test credentials and user contracts | |
| run: ./gradlew test --tests io.superdurable.dex.CredentialTest --tests io.superdurable.dex.ApiKeyCredentialTest --tests io.superdurable.dex.FlowServiceTlsTest --tests io.superdurable.dex.contracts.UserContractsTest "-PtestJavaVersion=${{ matrix.java-version }}" --no-daemon | |
| publication: | |
| name: Maven publication | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| env: | |
| RUSTUP_TOOLCHAIN: '1.97.1' | |
| defaults: | |
| run: | |
| working-directory: sdk-java | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Rust | |
| run: rustup toolchain install 1.97.1 --profile minimal | |
| - uses: actions/setup-java@v5 | |
| with: | |
| distribution: zulu | |
| java-version: '25' | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v6 | |
| - name: Validate public API documentation | |
| run: ./gradlew checkstyleMain javadoc --no-daemon | |
| - name: Validate Gradle and Maven consumers | |
| run: ./validate-publication.sh "0.0.2-ci.${GITHUB_RUN_NUMBER}" | |
| tests: | |
| name: Integration tests (zd, pull) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 75 | |
| permissions: | |
| contents: read | |
| id-token: write | |
| env: | |
| DEX_INTEG_ENGINE: zd | |
| DEX_SERVER_ZD_BINARY: ${{ github.workspace }}/server-zd/target/debug/dex-server-zd | |
| CARGO_TERM_COLOR: always | |
| CARGO_INCREMENTAL: "0" | |
| RUST_BACKTRACE: "1" | |
| RUSTUP_TOOLCHAIN: "1.97.1" | |
| CARGO_BUILD_JOBS: "4" | |
| defaults: | |
| run: | |
| working-directory: sdk-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 | |
| 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: Run JVM and dexcli dev integration coverage | |
| env: | |
| # Integration coverage runs on the oldest supported test JVM. | |
| ORG_GRADLE_PROJECT_testJavaVersion: "8" | |
| run: ./run-integration-tests.sh --coverage | |
| - name: Upload Java integration coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| disable_search: true | |
| fail_ci_if_error: true | |
| files: ./sdk-java/build/reports/jacoco/integration/jacoco.xml | |
| flags: sdk-java-integration | |
| name: sdk-java-integration-pull | |
| use_oidc: true | |
| - name: Upload coverage report | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: sdk-java-integration-coverage-pull | |
| path: sdk-java/build/reports/jacoco/integration/ | |
| if-no-files-found: ignore | |
| - name: Upload service logs | |
| if: always() | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: sdk-java-integration-services-pull | |
| path: /tmp/test-java-sdk-integration-services.log | |
| if-no-files-found: ignore |