mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-19 08:01:25 +00:00
181e68d266
* refactor: replace v2 live migration with regular SQL migration Remove the v2_finalize live migration that waited for workers to reach v1.461+ and replace it with an idempotent SQL migration. Since enough time has passed, all deployments are assumed to be on v1.461+. Changes: - Remove v2_finalize() function and spawn task from live_migrations.rs - Remove MIN_VERSION_IS_AT_LEAST_1_461 constant from min_version.rs - Add 20260125000000_v2_finalize.up.sql with all finalization steps - All SQL operations use IF EXISTS/CASCADE for idempotency Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: remove migration-related delays and tighten CLI tests CI trigger - Remove 5s backend initialization delay in cargo_backend.ts that was needed for the v2 live migration (now replaced with SQL migration) - Restrict CLI tests workflow to only trigger on cli/** changes (removed backend/**, openapi.yaml, openflow.openapi.yaml paths) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: skip v2_finalize migration if live migration already ran Wrap migration in DO block that checks for 'v2_finalize_job_completed' in windmill_migrations table. If present (live migration already ran), skip entirely to avoid unnecessary table locks on upgraded instances. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
162 lines
3.8 KiB
YAML
162 lines
3.8 KiB
YAML
name: CLI Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
paths:
|
|
- 'cli/**'
|
|
- '.github/workflows/cli-tests.yml'
|
|
pull_request:
|
|
branches: [main]
|
|
paths:
|
|
- 'cli/**'
|
|
- '.github/workflows/cli-tests.yml'
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
SQLX_OFFLINE: true
|
|
|
|
jobs:
|
|
build-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Deno
|
|
uses: denoland/setup-deno@v2
|
|
with:
|
|
deno-version: v2.x
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Generate Windmill client
|
|
working-directory: cli
|
|
run: ./gen_wm_client.sh
|
|
|
|
- name: Run CLI build
|
|
working-directory: cli
|
|
run: ./build.sh
|
|
|
|
test-linux:
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16
|
|
env:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: changeme
|
|
POSTGRES_DB: windmill
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Rust toolchain
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
cache: true
|
|
cache-workspaces: backend
|
|
|
|
- name: Setup Deno
|
|
uses: denoland/setup-deno@v2
|
|
with:
|
|
deno-version: v2.x
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Generate Windmill clients
|
|
working-directory: cli
|
|
run: |
|
|
./gen_wm_client.sh
|
|
./windmill-utils-internal/gen_wm_client.sh
|
|
|
|
- name: Run CLI tests
|
|
working-directory: cli
|
|
env:
|
|
DATABASE_URL: postgres://postgres:changeme@localhost:5432
|
|
CI_MINIMAL_FEATURES: "true"
|
|
run: |
|
|
deno test --no-check --allow-all test/ \
|
|
--ignore=test/cargo_backend_example.test.ts
|
|
|
|
test-windows:
|
|
runs-on: windows-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup PostgreSQL
|
|
uses: ikalnytskyi/action-setup-postgres@v6
|
|
with:
|
|
username: postgres
|
|
password: changeme
|
|
database: windmill
|
|
port: 5432
|
|
|
|
- name: Setup Rust toolchain
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
with:
|
|
cache: true
|
|
cache-workspaces: backend
|
|
|
|
- name: Setup Deno
|
|
uses: denoland/setup-deno@v2
|
|
with:
|
|
deno-version: v2.x
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Generate Windmill clients
|
|
working-directory: cli
|
|
shell: bash
|
|
run: |
|
|
./gen_wm_client.sh
|
|
./windmill-utils-internal/gen_wm_client.sh
|
|
|
|
- name: Run CLI tests
|
|
working-directory: cli
|
|
shell: pwsh
|
|
env:
|
|
DATABASE_URL: postgres://postgres:changeme@localhost:5432
|
|
CI_MINIMAL_FEATURES: "true"
|
|
run: |
|
|
deno test --no-check --allow-all test/ `
|
|
--ignore=test/cargo_backend_example.test.ts
|
|
|
|
# Combined summary job for branch protection
|
|
test-summary:
|
|
runs-on: ubuntu-latest
|
|
needs: [build-check, test-linux, test-windows]
|
|
if: always()
|
|
steps:
|
|
- name: Check test results
|
|
run: |
|
|
if [ "${{ needs.build-check.result }}" != "success" ]; then
|
|
echo "Build check failed"
|
|
exit 1
|
|
fi
|
|
if [ "${{ needs.test-linux.result }}" != "success" ] || [ "${{ needs.test-windows.result }}" != "success" ]; then
|
|
echo "Some tests failed"
|
|
exit 1
|
|
fi
|
|
echo "All checks passed"
|