name: "Windows Nightly Build" on: schedule: - cron: "0 0 * * *" # every day at midnight workflow_dispatch: jobs: build: runs-on: windows-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up MSbuild uses: microsoft/setup-msbuild@v2 - name: Set up Flutter uses: subosito/flutter-action@v2 with: channel: 'stable' cache: true cache-key: 'flutter-:os:-:channel:-:version:-:arch:-:hash:' # optional, change this to force refresh cache cache-path: '${{ runner.tool_cache }}/flutter/:channel:-:version:-:arch:' # optional, change this to specify the cache path - run: flutter --version - name: Set up Rust uses: dtolnay/rust-toolchain@stable - name: Rust Version run: | rustup --version cargo --version - name: Rust Cache uses: Swatinem/rust-cache@v2 with: workspaces: "rust" cache-all-crates: true - name: Set up LLVM uses: KyleMayes/install-llvm-action@v2 with: version: "18" - name: Set up Golang uses: actions/setup-go@v5 with: go-version: 'stable' - name: Flutter pub get run: flutter pub get - name: Flutter build runner run: dart run build_runner build --delete-conflicting-outputs - name: Rust cargo update run: cargo update working-directory: rust - name: Set up Flutter rust bridge run: | cargo install cargo-expand cargo install 'flutter_rust_bridge_codegen@^2.0.0-dev.0' - name: setup rust2go-cli run: rust2go-cli --src rust/src/go/go_api.rs --dst rust/go/rs_gen.go - name: Flutter Rust bridge generate run: flutter_rust_bridge_codegen generate - name: flutter gen l10n run: | flutter pub global activate intl_utils flutter pub global run intl_utils:generate - name: Flutter build Windows run: flutter build windows - name: Archive build uses: actions/upload-artifact@v4 with: name: windows path: build/windows/x64/runner/Release