Build Windows executable in shared Steam depot (#50)
## Summary - install the nightly Windows MSVC target and cargo-xwin in CI - build the production Windows executable alongside Linux - package both executables and only imported_assets in one Steam depot Reviewed-on: #50 Co-authored-by: Álex Román Núñez <eirexe@eirteam.moe>
This commit was merged in pull request #50.
This commit is contained in:
+22
-6
@@ -65,6 +65,11 @@ jobs:
|
||||
echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"
|
||||
"$HOME/.cargo/bin/rustup" toolchain install nightly-2026-09-14 --profile minimal
|
||||
|
||||
- name: Install Windows build tooling
|
||||
run: |
|
||||
"$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 production Rust dependencies and build artifacts
|
||||
uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2
|
||||
with:
|
||||
@@ -76,7 +81,7 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install --no-install-recommends -y \
|
||||
clang \
|
||||
clang-19 \
|
||||
libasound2-dev \
|
||||
libudev-dev \
|
||||
libusb-1.0-0-dev \
|
||||
@@ -84,9 +89,15 @@ jobs:
|
||||
libx11-dev \
|
||||
libxkbcommon-dev \
|
||||
libxkbcommon-x11-0 \
|
||||
lld-19 \
|
||||
llvm-19 \
|
||||
mesa-vulkan-drivers \
|
||||
mold \
|
||||
pkg-config
|
||||
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-19 100
|
||||
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-19 100
|
||||
echo "/usr/lib/llvm-19/bin" >> "$GITHUB_PATH"
|
||||
rm -f "$HOME/.cache/cargo-xwin/clang-cl"
|
||||
|
||||
- name: Preprocess assets
|
||||
run: cargo run --locked --bin process-assets --no-default-features --features debug_features -j 4
|
||||
@@ -94,6 +105,11 @@ 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: |
|
||||
clang --version
|
||||
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 +117,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 +139,5 @@ jobs:
|
||||
appId: 3409670
|
||||
buildDescription: ${{ github.sha }}
|
||||
rootPath: build
|
||||
depot1Path: linux
|
||||
depot1Path: game
|
||||
releaseBranch: master
|
||||
|
||||
Reference in New Issue
Block a user