name: Backend check on: workflow_run: workflows: ["Change versions"] types: - completed push: paths: - "backend/**" - ".github/workflows/backend-check.yml" jobs: check_oss: runs-on: ubicloud-standard-8 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install mold and clang run: sudo apt-get update && sudo apt-get install -y mold clang - uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache: false toolchain: 1.93.0 - name: cargo check working-directory: ./backend timeout-minutes: 16 run: SQLX_OFFLINE=true cargo check check_oss_full: runs-on: ubicloud-standard-8 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: install xmlsec1 and gssapi run: | sudo apt-get update sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev libsasl2-dev libcurl4-openssl-dev mold clang - uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache: false toolchain: 1.93.0 - name: cargo check working-directory: ./backend timeout-minutes: 16 run: | mkdir -p fake_frontend_build FRONTEND_BUILD_DIR=$(pwd)/fake_frontend_build SQLX_OFFLINE=true cargo check --features all_sqlx_features check_ee: runs-on: ubicloud-standard-8 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Read EE repo commit hash run: | echo "ee_repo_ref=$(cat ./backend/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: | ./backend/substitute_ee_code.sh --copy --dir ./windmill-ee-private - name: Install mold and clang run: sudo apt-get update && sudo apt-get install -y mold clang - uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache: false toolchain: 1.93.0 - name: cargo check working-directory: ./backend timeout-minutes: 16 run: SQLX_OFFLINE=true cargo check check_ee_full: runs-on: ubicloud-standard-8 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Read EE repo commit hash run: | echo "ee_repo_ref=$(cat ./backend/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: install xmlsec1 and gssapi run: | sudo apt-get update sudo apt-get install -y libxml2-dev libxmlsec1-dev libkrb5-dev libsasl2-dev libcurl4-openssl-dev mold clang - name: Substitute EE code (EE logic is behind feature flag) run: | ./backend/substitute_ee_code.sh --copy --dir ./windmill-ee-private - uses: actions-rust-lang/setup-rust-toolchain@v1 with: cache-workspaces: backend toolchain: 1.93.0 - name: Fix stale v8 build cache working-directory: ./backend run: | # Cargo cache may preserve v8 build fingerprints without the actual # librusty_v8.a library. Since fingerprints look valid, cargo skips # build.rs re-run, causing "could not find native static library rusty_v8". for profile in debug release; do if [ -d "target/$profile/.fingerprint" ] && [ ! -f "target/$profile/gn_out/obj/librusty_v8.a" ]; then echo "Cleaning stale v8 build artifacts in target/$profile" rm -rf "target/$profile/build/v8-"* "target/$profile/.fingerprint/v8-"* fi done - name: cargo check timeout-minutes: 16 working-directory: ./backend run: | mkdir -p fake_frontend_build FRONTEND_BUILD_DIR=$(pwd)/fake_frontend_build SQLX_OFFLINE=true cargo check --features all_sqlx_features,private