diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index f28aace..545c20d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -21,6 +21,8 @@ jobs: sh -s -- -y --profile minimal echo "$HOME/.cargo/bin" >> "$GITHUB_PATH" "$HOME/.cargo/bin/rustup" toolchain install nightly-2026-09-14 --profile minimal + "$HOME/.cargo/bin/rustup" target add x86_64-pc-windows-msvc --toolchain nightly-2026-09-14 + "$HOME/.cargo/bin/cargo" install cargo-xwin --locked - name: Cache Rust dependencies and build artifacts uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 @@ -41,6 +43,7 @@ jobs: libx11-dev \ libxkbcommon-dev \ libxkbcommon-x11-0 \ + lld \ mesa-vulkan-drivers \ mold \ pkg-config @@ -94,6 +97,9 @@ jobs: - name: Build production binary run: cargo build --locked --profile production --no-default-features --features debug_features -j 4 + - name: Build Windows production binary + run: cargo xwin build --locked --target x86_64-pc-windows-msvc --profile production --no-default-features --features debug_features -j 4 --bin shinespark + - name: Verify production binary is not Bevy/Rust dynamically linked run: | ! readelf -d target/production/shinespark | grep -E 'libbevy_dylib|libstd-.*\.so' @@ -101,10 +107,10 @@ jobs: - name: Package Linux Steam depot if: github.event_name == 'push' && github.ref == 'refs/heads/master' run: | - mkdir -p build/linux - cp target/production/shinespark build/linux/shinespark - cp -R assets build/linux/assets - cp -R imported_assets build/linux/imported_assets + mkdir -p build/game + cp target/production/shinespark build/game/shinespark + cp target/x86_64-pc-windows-msvc/production/shinespark.exe build/game/shinespark.exe + cp -R imported_assets build/game/imported_assets - if: github.event_name == 'push' && github.ref == 'refs/heads/master' uses: CyberAndrii/steam-totp@v1 @@ -123,5 +129,5 @@ jobs: appId: 3409670 buildDescription: ${{ github.sha }} rootPath: build - depot1Path: linux + depot1Path: game releaseBranch: master