name: Backend only integration tests on: push: branches: - "main" paths: - "backend/**" - ".github/workflows/backend-test.yml" pull_request: types: [opened, synchronize, reopened] paths: - "backend/**" - ".github/workflows/backend-test.yml" defaults: run: working-directory: ./backend jobs: cargo_test: runs-on: ubicloud-standard-8 services: postgres: image: postgres ports: - 5432:5432 env: POSTGRES_DB: windmill POSTGRES_PASSWORD: changeme options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 steps: - uses: actions/checkout@v4 - uses: actions/setup-dotnet@v4 with: dotnet-version: "9.0.x" - uses: denoland/setup-deno@v2 with: deno-version: v2.x - uses: actions/setup-go@v2 with: go-version: 1.21.5 - uses: oven-sh/setup-bun@v2 with: bun-version: 1.1.43 - uses: astral-sh/setup-uv@v6.2.1 with: version: "0.9.24" - uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache-workspaces: backend toolchain: 1.90.0 - name: Read EE repo commit hash run: | echo "ee_repo_ref=$(cat ./ee-repo-ref.txt)" >> "$GITHUB_ENV" - uses: actions/checkout@v4 with: repository: windmill-labs/windmill-ee-private path: ./windmill-ee-private ref: ${{ env.ee_repo_ref }} token: ${{ secrets.WINDMILL_EE_PRIVATE_ACCESS }} fetch-depth: 0 - name: Substitute EE code (EE logic is behind feature flag) run: | ./substitute_ee_code.sh --copy --dir ./windmill-ee-private - name: Cache DuckDB FFI module build uses: actions/cache@v3 with: path: ./backend/windmill-duckdb-ffi-internal/target key: ${{ runner.os }}-duckdb-ffi-${{ hashFiles('./backend/windmill-duckdb-ffi-internal/src/**/*.rs', './backend/windmill-duckdb-ffi-internal/Cargo.toml', './backend/windmill-duckdb-ffi-internal/Cargo.lock') }} restore-keys: | ${{ runner.os }}-duckdb-ffi- - name: cargo test timeout-minutes: 16 env: SQLX_OFFLINE: true DATABASE_URL: postgres://postgres:changeme@localhost:5432/windmill DISABLE_EMBEDDING: true RUST_LOG: info RUST_LOG_STYLE: never CARGO_NET_GIT_FETCH_WITH_CLI: true WMDEBUG_FORCE_V0_WORKSPACE_DEPENDENCIES: 1 WMDEBUG_FORCE_RUNNABLE_SETTINGS_V0: 1 WMDEBUG_FORCE_NO_LEGACY_DEBOUNCING_COMPAT: 1 run: | deno --version && bun -v && go version && python3 --version cd windmill-duckdb-ffi-internal && ./build_dev.sh && cd .. DENO_PATH=$(which deno) BUN_PATH=$(which bun) GO_PATH=$(which go) UV_PATH=$(which uv) cargo test --features enterprise,deno_core,duckdb,license,python,rust,scoped_cache,parquet,private --all -- --nocapture