@@ -30,85 +30,170 @@ upscale-assets:
3030
3131# Build Linux Release Binary
3232build-linux :
33+ #!/usr/bin/env bash
34+ set -euo pipefail
35+ recipe_start=$SECONDS
36+ echo " ::group::build-linux"
3337 echo " Building Linux release..."
38+ step_start=$SECONDS
3439 cargo build --release --target x86_64-unknown-linux-gnu
40+ echo " [timing] build-linux:cargo-build=$(( SECONDS - step_start)) s"
3541 echo " Linux build complete."
42+ echo " [timing] build-linux:total=$(( SECONDS - recipe_start)) s"
43+ echo " ::endgroup::"
3644
3745# Build Windows Release Binary (GNU toolchain)
3846# Assumes mingw-w64 is installed (either locally or in GH Actions runner)
3947build-windows :
48+ #!/usr/bin/env bash
49+ set -euo pipefail
50+ recipe_start=$SECONDS
51+ echo " ::group::build-windows"
4052 echo " Building Windows release..."
53+ step_start=$SECONDS
4154 cargo build --release --target x86_64-pc-windows-gnu
55+ echo " [timing] build-windows:cargo-build=$(( SECONDS - step_start)) s"
4256 echo " Windows build complete."
57+ echo " [timing] build-windows:total=$(( SECONDS - recipe_start)) s"
58+ echo " ::endgroup::"
4359
4460# Build WASM Package
4561build-wasm :
62+ #!/usr/bin/env bash
63+ set -euo pipefail
64+ recipe_start=$SECONDS
65+ echo " ::group::build-wasm"
4666 echo " Building WASM package..."
67+ step_start=$SECONDS
4768 cargo install wasm-pack # Ensure wasm-pack is available
69+ echo " [timing] build-wasm:install-wasm-pack=$(( SECONDS - step_start)) s"
70+ step_start=$SECONDS
4871 wasm-pack build --release --target web
72+ echo " [timing] build-wasm:wasm-pack-build=$(( SECONDS - step_start)) s"
4973 echo " WASM build complete."
74+ echo " [timing] build-wasm:total=$(( SECONDS - recipe_start)) s"
75+ echo " ::endgroup::"
5076
5177# Build Dedicated Server Binary (Linux only)
5278build-server :
79+ #!/usr/bin/env bash
80+ set -euo pipefail
81+ recipe_start=$SECONDS
82+ echo " ::group::build-server"
5383 echo " Building server release..."
84+ step_start=$SECONDS
5485 cargo build --release --target x86_64-unknown-linux-gnu --bin unhaunter_dedicated
86+ echo " [timing] build-server:cargo-build=$(( SECONDS - step_start)) s"
5587 echo " Server build complete."
88+ echo " [timing] build-server:total=$(( SECONDS - recipe_start)) s"
89+ echo " ::endgroup::"
5690
5791# == Packaging Recipes ==
5892
5993package-common : ensure-dist-dir upscale-assets
94+ #!/usr/bin/env bash
95+ set -euo pipefail
96+ recipe_start=$SECONDS
97+ echo " ::group::package-common"
6098 echo " Packaging Common artifacts for {{_version}}..."
99+ step_start=$SECONDS
100+ cargo run -p assetidx_updater --release
101+ echo " [timing] package-common:update-assetidx=$(( SECONDS - step_start)) s"
102+ step_start=$SECONDS
61103 rm -rf {{_dist_dir}}/common/*
62104 cp -r {{_assets_dir}} {{_dist_dir}}/common/assets
63105 cp {{_readme}} {{_dist_dir}}/common/README.md
64106 cp {{_license}} {{_dist_dir}}/common/LICENSE
65107 cp {{_changelog}} {{_dist_dir}}/common/CHANGELOG.md
66108 cp favicon* .png favicon* .ico {{_dist_dir}}/common/
67109 cp screenshots {{_dist_dir}}/common/screenshots -R
110+ echo " [timing] package-common:copy-assets-and-docs=$(( SECONDS - step_start)) s"
111+ echo " [timing] package-common:total=$(( SECONDS - recipe_start)) s"
112+ echo " ::endgroup::"
68113
69114# Package Linux Artifacts into .tar.gz
70115package-linux : build-linux package-common
116+ #!/usr/bin/env bash
117+ set -euo pipefail
118+ recipe_start=$SECONDS
119+ echo " ::group::package-linux"
71120 echo " Packaging Linux artifact for {{_version}}..."
121+ step_start=$SECONDS
72122 rm -rf {{_dist_dir}}/linux/*
73123 cp {{_dist_dir}}/common/* {{_dist_dir}}/linux/ -R
74124 cp {{_target_dir}}/x86_64-unknown-linux-gnu/release/unhaunter_game {{_dist_dir}}/linux/unhaunter_game
125+ echo " [timing] package-linux:prepare-files=$(( SECONDS - step_start)) s"
126+ step_start=$SECONDS
75127 unlink {{_releases_dir}}/unhaunter-{{_version}}-linux-x86_64.tar.gz || true
76- tar -czvf {{ _releases_dir}} / unhaunter-{{ _version}} -linux-x86 _64. tar.gz -C {{ _dist_dir}} / linux .
128+ tar -czf {{_releases_dir}}/unhaunter-{{_version}}-linux-x86_64.tar.gz -C {{_dist_dir}}/linux .
129+ echo " [timing] package-linux:create-tarball=$(( SECONDS - step_start)) s"
77130 echo " Linux package created: {{_releases_dir}}/unhaunter-{{_version}}-linux-x86_64.tar.gz"
131+ echo " [timing] package-linux:total=$(( SECONDS - recipe_start)) s"
132+ echo " ::endgroup::"
78133
79134# Package Windows Artifacts into .zip
80135package-windows : build-windows package-common
136+ #!/usr/bin/env bash
137+ set -euo pipefail
138+ recipe_start=$SECONDS
139+ echo " ::group::package-windows"
81140 echo " Packaging Windows artifact for {{_version}}..."
141+ step_start=$SECONDS
82142 rm -rf {{_dist_dir}}/windows/*
83143 cp {{_dist_dir}}/common/* {{_dist_dir}}/windows/ -R
84144 cp {{_target_dir}}/x86_64-pc-windows-gnu/release/unhaunter_game.exe {{_dist_dir}}/windows/unhaunter_game.exe
145+ echo " [timing] package-windows:prepare-files=$(( SECONDS - step_start)) s"
146+ step_start=$SECONDS
85147 unlink {{_releases_dir}}/unhaunter-{{_version}}-windows-x86_64.zip || true
86148 cd {{_dist_dir}}/windows && zip -r ../../{{_releases_dir}}/unhaunter-{{_version}}-windows-x86_64.zip *
87149 cd ../../
150+ echo " [timing] package-windows:create-zip=$(( SECONDS - step_start)) s"
88151 echo " Windows package created: {{_releases_dir}}/unhaunter-{{_version}}-windows-x86_64.zip"
152+ echo " [timing] package-windows:total=$(( SECONDS - recipe_start)) s"
153+ echo " ::endgroup::"
89154
90155# Package WASM Artifacts into .zip
91156package-wasm : build-wasm package-common
157+ #!/usr/bin/env bash
158+ set -euo pipefail
159+ recipe_start=$SECONDS
160+ echo " ::group::package-wasm"
92161 echo " Packaging WASM artifact for {{_version}}..."
162+ step_start=$SECONDS
93163 rm -rf {{_dist_dir}}/wasm/*
94164 cp {{_dist_dir}}/common/* {{_dist_dir}}/wasm/ -R
95165 cp -r pkg {{_dist_dir}}/wasm/pkg
96166 cp index.html {{_dist_dir}}/wasm/index.html
167+ echo " [timing] package-wasm:prepare-files=$(( SECONDS - step_start)) s"
168+ step_start=$SECONDS
97169 unlink {{_releases_dir}}/unhaunter-{{_version}}-wasm.zip || true
98170 cd {{_dist_dir}}/wasm && zip -r ../../{{_releases_dir}}/unhaunter-{{_version}}-wasm.zip *
99171 cd ../../
172+ echo " [timing] package-wasm:create-zip=$(( SECONDS - step_start)) s"
100173 echo " WASM package created: {{_releases_dir}}/unhaunter-{{_version}}-wasm.zip"
174+ echo " [timing] package-wasm:total=$(( SECONDS - recipe_start)) s"
175+ echo " ::endgroup::"
101176
102177# Package Dedicated Server Artifacts into .tar.gz
103178package-server : ensure-dist-dir build-server
179+ #!/usr/bin/env bash
180+ set -euo pipefail
181+ recipe_start=$SECONDS
182+ echo " ::group::package-server"
104183 echo " Packaging server artifact for {{_version}}..."
184+ step_start=$SECONDS
105185 rm -rf {{_dist_dir}}/server
106186 mkdir -p {{_dist_dir}}/server
107187 cp {{_target_dir}}/x86_64-unknown-linux-gnu/release/unhaunter_dedicated {{_dist_dir}}/server/unhaunter_dedicated
108188 cp -r {{_assets_dir}} {{_dist_dir}}/server/assets
189+ echo " [timing] package-server:prepare-files=$(( SECONDS - step_start)) s"
190+ step_start=$SECONDS
109191 unlink {{_releases_dir}}/unhaunter-{{_version}}-server-linux-x86_64.tar.gz || true
110- tar -czvf {{ _releases_dir}} / unhaunter-{{ _version}} -server-linux-x86 _64. tar.gz -C {{ _dist_dir}} / server .
192+ tar -czf {{_releases_dir}}/unhaunter-{{_version}}-server-linux-x86_64.tar.gz -C {{_dist_dir}}/server .
193+ echo " [timing] package-server:create-tarball=$(( SECONDS - step_start)) s"
111194 echo " Server package created: {{_releases_dir}}/unhaunter-{{_version}}-server-linux-x86_64.tar.gz"
195+ echo " [timing] package-server:total=$(( SECONDS - recipe_start)) s"
196+ echo " ::endgroup::"
112197
113198
114199# == Combined Recipes ==
0 commit comments