Run non-cancellation safe cluster controller leader tasks in select e… #7280
This file contains 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: | |
pull_request: | |
workflow_call: | |
workflow_dispatch: | |
push: | |
branches: | |
- main | |
jobs: | |
build-and-test: | |
name: Build and test (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
permissions: | |
contents: read | |
packages: read | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [warp-ubuntu-latest-x64-16x] | |
env: | |
RUST_BACKTRACE: full | |
steps: | |
- name: Install liburing | |
run: sudo apt-get update && sudo apt-get install -y liburing-dev | |
- uses: actions/checkout@v4 | |
- name: Install Rust toolchain | |
uses: actions-rust-lang/setup-rust-toolchain@v1 | |
with: | |
components: clippy | |
rustflags: "" | |
cache: false | |
- name: Setup Rust Caching | |
uses: WarpBuilds/rust-cache@v2 # a fork of Swatinem/rust-cache@v2 that uses warpbuild cache | |
with: | |
cache-on-failure: "true" | |
- name: Install protoc | |
uses: ./.github/actions/install-protoc | |
- name: Install nextest | |
uses: taiki-e/install-action@nextest | |
- name: Setup just | |
uses: extractions/setup-just@v2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Check Cargo.lock file is updated | |
run: cargo update -w --locked | |
- name: Run verify | |
run: just verify | |
env: | |
LOCAL_CLUSTER_RUNNER_FORWARD_LOGS: "true" | |
LOCAL_CLUSTER_RUNNER_RETAIN_TEMPDIR: "true" | |
docker: | |
name: Create docker image | |
uses: ./.github/workflows/docker.yml | |
with: | |
uploadImageAsTarball: true | |
platforms: linux/amd64 | |
sdk-java: | |
name: Run SDK-Java integration tests | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-java/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
sdk-java-disable-idempotency-table: | |
name: Run SDK-Java integration tests with DisableIdempotencyTable | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-java/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
envVars: | | |
RESTATE_WORKER__EXPERIMENTAL_FEATURE_DISABLE_IDEMPOTENCY_TABLE=true | |
RUST_LOG=info,restate_invoker=trace,restate_ingress_http=trace,restate_bifrost=trace,restate_log_server=trace,restate_core::partitions=trace,restate=debug | |
testArtifactOutput: sdk-java-disable-idempotency-table-integration-test-report | |
sdk-java-kafka-next: | |
name: Run SDK-Java integration tests with KafkaIngressNext | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-java/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
envVars: | | |
RESTATE_INGRESS__EXPERIMENTAL_FEATURE_KAFKA_INGRESS_NEXT=true | |
RUST_LOG=info,restate_invoker=trace,restate_ingress_http=trace,restate_bifrost=trace,restate_log_server=trace,restate_core::partitions=trace,restate=debug | |
testArtifactOutput: sdk-java-kafka-next-gen-integration-test-report | |
sdk-python: | |
name: Run SDK-Python integration tests | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-python/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
sdk-go: | |
name: Run SDK-Go integration tests | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-go/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
sdk-typescript: | |
name: Run SDK-Typescript integration tests | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-typescript/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
sdk-rust: | |
name: Run SDK-Rust integration tests | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
pull-requests: write | |
actions: read | |
secrets: inherit | |
needs: docker | |
uses: restatedev/sdk-rust/.github/workflows/integration.yaml@main | |
with: | |
restateCommit: ${{ github.event.pull_request.head.sha || github.sha }} | |
restate-ui: | |
name: Validate Restate UI artifact | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Verify the committed UI artifact matches the published one in restate-web-ui | |
run: ./tools/scripts/verify-ui-artifact |