name: Build windows executable for this branch on: workflow_dispatch: env: CARGO_INCREMENTAL: 0 SQLX_OFFLINE: true DISABLE_EMBEDDING: true RUST_LOG: info jobs: cargo_build_windows: runs-on: blacksmith-16vcpu-windows-2025 steps: - uses: actions/checkout@v4 - name: Read EE repo commit hash shell: pwsh run: | $ee_repo_ref = Get-Content .\backend\ee-repo-ref.txt echo "ee_repo_ref=$ee_repo_ref" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Checkout windmill-ee-private repository 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 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache-workspaces: backend toolchain: 1.93.0 - name: Substitute EE code shell: bash run: | ./backend/substitute_ee_code.sh --copy --dir ./windmill-ee-private - name: Cargo check (fail fast on warnings) timeout-minutes: 60 env: RUSTFLAGS: "-D warnings" run: | mkdir frontend/build && cd backend New-Item -Path . -Name "windmill-api/openapi-deref.yaml" -ItemType "File" -Force cargo check --features=ee_windows - name: Cargo build dynamic libraries windows timeout-minutes: 180 run: | cd backend/windmill-duckdb-ffi-internal cargo build --release -p windmill_duckdb_ffi_internal - name: Cargo build binary windows timeout-minutes: 180 run: | vcpkg.exe install openssl-windows:x64-windows vcpkg.exe install openssl:x64-windows-static vcpkg.exe integrate install $env:VCPKGRS_DYNAMIC=1 $env:OPENSSL_DIR="${Env:VCPKG_INSTALLATION_ROOT}\installed\x64-windows-static" cd backend cargo build --release --features=ee_windows - name: Rename binary with corresponding architecture run: | Rename-Item -Path ".\backend\target\release\windmill.exe" -NewName "windmill-ee.exe" - name: Upload binary artifact uses: actions/upload-artifact@v4 with: name: windmill-ee-binary path: ./backend/target/release/windmill-ee.exe - name: Upload dynamic libraries artifact uses: actions/upload-artifact@v4 with: name: windmill_duckdb_ffi_internal.dll path: ./backend/windmill-duckdb-ffi-internal/target/release/windmill_duckdb_ffi_internal.dll