Skip to content

Commit 976317d

Browse files
Merge pull request #1 from themuffinator/copilot/update-nightly-script-and-building
nightly: unique release tags, external renderer libs, docs/fnquake3/ restructure
2 parents 03b8517 + 4cf9e02 commit 976317d

13 files changed

Lines changed: 244 additions & 240 deletions

File tree

.github/workflows/nightly.yml

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,9 @@ jobs:
9797
run: |
9898
if not exist bin mkdir bin
9999
100-
make release ARCH=${{ matrix.arch }} USE_SDL=0 USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=vulkan CNAME=fnquake3-vulkan BUILD_SERVER=0
101-
copy build\release-mingw32-${{ matrix.arch }}\fnquake3-vulkan*.exe bin\
102-
103-
make clean ARCH=${{ matrix.arch }}
104-
make release ARCH=${{ matrix.arch }} USE_SDL=0 USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=opengl
100+
make release ARCH=${{ matrix.arch }} USE_SDL=0 USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_VULKAN=1
105101
copy build\release-mingw32-${{ matrix.arch }}\fnquake3*.exe bin\
102+
copy build\release-mingw32-${{ matrix.arch }}\fnquake3*.dll bin\
106103
107104
- uses: actions/upload-artifact@v4
108105
with:
@@ -125,15 +122,18 @@ jobs:
125122
platform: ARM64
126123
suffix: .arm64
127124
pkg_suffix: arm64
125+
rend_arch: arm64
128126

129127
- arch: x86
130128
platform: Win32
131129
pkg_suffix: x86
130+
rend_arch: x86
132131

133132
- arch: x64
134133
platform: x64
135134
suffix: .x64
136135
pkg_suffix: x86_64
136+
rend_arch: x86_64
137137
steps:
138138
- uses: microsoft/setup-msbuild@v2
139139

@@ -153,15 +153,15 @@ jobs:
153153
msbuild code\win32\msvc2017\fnquake3-ded.vcxproj -p:TargetName=fnquake3.ded,Configuration=Release,Platform=${{ matrix.platform }} -t:Clean
154154
155155
msbuild code\win32\msvc2017\renderer.vcxproj -p:Configuration=Release,Platform=${{ matrix.platform }} /p:PlatformToolset=v143
156-
msbuild code\win32\msvc2017\fnquake3.vcxproj -p:TargetName=fnquake3,Configuration=Release,Platform=${{ matrix.platform }},UseWasapi=USE_WASAPI=0 /p:PlatformToolset=v143
157-
copy code\win32\msvc2017\output\fnquake3.exe bin\fnquake3${{ matrix.suffix }}.exe
156+
copy code\win32\msvc2017\output\fnquake3_opengl_${{ matrix.rend_arch }}.dll bin\
158157
msbuild code\win32\msvc2017\renderer.vcxproj -p:Configuration=Release,Platform=${{ matrix.platform }} -t:Clean
159-
msbuild code\win32\msvc2017\fnquake3.vcxproj -p:TargetName=fnquake3,Configuration=Release,Platform=${{ matrix.platform }},UseWasapi=USE_WASAPI=0 -t:Clean
160158
161159
msbuild code\win32\msvc2017\renderervk.vcxproj -p:Configuration=Release,Platform=${{ matrix.platform }} /p:PlatformToolset=v143
162-
msbuild code\win32\msvc2017\fnquake3.vcxproj -p:TargetName=fnquake3,Configuration=Release,Platform=${{ matrix.platform }},UseWasapi=USE_WASAPI=0 /p:PlatformToolset=v143
163-
copy code\win32\msvc2017\output\fnquake3.exe bin\fnquake3-vulkan${{ matrix.suffix }}.exe
160+
copy code\win32\msvc2017\output\fnquake3_vulkan_${{ matrix.rend_arch }}.dll bin\
164161
msbuild code\win32\msvc2017\renderervk.vcxproj -p:Configuration=Release,Platform=${{ matrix.platform }} -t:Clean
162+
163+
msbuild code\win32\msvc2017\fnquake3.vcxproj -p:TargetName=fnquake3,Configuration=Release,Platform=${{ matrix.platform }},UseWasapi=USE_WASAPI=0 /p:PlatformToolset=v143
164+
copy code\win32\msvc2017\output\fnquake3.exe bin\fnquake3${{ matrix.suffix }}.exe
165165
msbuild code\win32\msvc2017\fnquake3.vcxproj -p:TargetName=fnquake3,Configuration=Release,Platform=${{ matrix.platform }},UseWasapi=USE_WASAPI=0 -t:Clean
166166
167167
- uses: actions/upload-artifact@v4
@@ -209,9 +209,7 @@ jobs:
209209

210210
- name: Build
211211
run: |
212-
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} COMPILE_ARCH=${{ matrix.arch }} CC=gcc DESTDIR=bin ${{ matrix.use_sdl }} USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=vulkan CNAME=fnquake3-vulkan BUILD_SERVER=0
213-
make clean ARCH=${{ matrix.arch }}
214-
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} COMPILE_ARCH=${{ matrix.arch }} CC=gcc DESTDIR=bin ${{ matrix.use_sdl }} USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=opengl
212+
make ${{ matrix.rule }} -j$(nproc) ARCH=${{ matrix.arch }} COMPILE_ARCH=${{ matrix.arch }} CC=gcc DESTDIR=bin ${{ matrix.use_sdl }} USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_VULKAN=1
215213
216214
- uses: actions/upload-artifact@v4
217215
with:
@@ -241,9 +239,7 @@ jobs:
241239

242240
- name: Build
243241
run: |
244-
make install -j$(nproc) ARCH=aarch64 COMPILE_ARCH=aarch64 CC=gcc DESTDIR=bin USE_SDL=0 USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=vulkan CNAME=fnquake3-vulkan BUILD_SERVER=0
245-
make clean ARCH=aarch64
246-
make install -j$(nproc) ARCH=aarch64 COMPILE_ARCH=aarch64 CC=gcc DESTDIR=bin USE_SDL=0 USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=opengl
242+
make install -j$(nproc) ARCH=aarch64 COMPILE_ARCH=aarch64 CC=gcc DESTDIR=bin USE_SDL=0 USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_VULKAN=1
247243
248244
- uses: actions/upload-artifact@v4
249245
with:
@@ -274,9 +270,7 @@ jobs:
274270

275271
- name: Build
276272
run: |
277-
gmake install -j$(sysctl -n hw.logicalcpu) ARCH=${{ matrix.arch }} CC=clang DESTDIR=bin INSTALL=ginstall USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=vulkan CNAME=fnquake3-vulkan BUILD_SERVER=0 STRIP=echo
278-
gmake clean ARCH=${{ matrix.arch }}
279-
gmake install -j$(sysctl -n hw.logicalcpu) ARCH=${{ matrix.arch }} CC=clang DESTDIR=bin INSTALL=ginstall USE_RENDERER_DLOPEN=0 RENDERER_DEFAULT=opengl STRIP=echo
273+
gmake install -j$(sysctl -n hw.logicalcpu) ARCH=${{ matrix.arch }} CC=clang DESTDIR=bin INSTALL=ginstall USE_RENDERER_DLOPEN=1 USE_OPENGL=1 USE_VULKAN=1 STRIP=echo
280274
281275
- uses: actions/upload-artifact@v4
282276
with:
@@ -327,12 +321,10 @@ jobs:
327321
"${FROM_ARGS[@]}" \
328322
--output .tmp/nightly-release-notes.md
329323
330-
- name: Recreate nightly release
324+
- name: Create nightly release
331325
env:
332326
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
333327
run: |
334-
gh release delete "${FNQ3_RELEASE_TAG}" --cleanup-tag --yes || true
335-
git push origin ":refs/tags/${FNQ3_RELEASE_TAG}" || true
336328
gh release create "${FNQ3_RELEASE_TAG}" \
337329
.install/packages/*.zip \
338330
.install/release-manifest.json \

.install/README.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ <h1>FnQuake3</h1>
223223
<div class="buttons">
224224
<a class="button button-primary" href="../README.md">Project README</a>
225225
<a class="button button-secondary" href="../BUILD.md">Build Guide</a>
226-
<a class="button button-secondary" href="../docs/TECHNICAL.md">Technical Notes</a>
226+
<a class="button button-secondary" href="../docs/fnquake3/TECHNICAL.md">Technical Notes</a>
227227
</div>
228228
<div class="grid">
229229
<article class="card">
@@ -269,7 +269,7 @@ <h2>Documentation</h2>
269269
<li><a href="../BUILD.md">BUILD.md</a> walks through platform-specific build steps.</li>
270270
<li><a href="../docs/ASPECT_CORRECTION.md">docs/ASPECT_CORRECTION.md</a> explains the HUD, menu, and cinematic presentation options.</li>
271271
<li><a href="../docs/CONSOLE.md">docs/CONSOLE.md</a> covers console scaling, interaction, completion, and appearance.</li>
272-
<li><a href="../docs/TECHNICAL.md">docs/TECHNICAL.md</a> covers repository layout, versioning, and release flow.</li>
272+
<li><a href="../docs/fnquake3/TECHNICAL.md">docs/fnquake3/TECHNICAL.md</a> covers repository layout, versioning, and release flow.</li>
273273
<li><a href="../LICENSE">LICENSE</a> and <a href="../COPYING.txt">COPYING.txt</a> ship with the package.</li>
274274
</ul>
275275
<p class="footer">This page is generated from the repository templates so the packaged docs stay aligned with the current build metadata.</p>

AGENTS.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,18 @@ FnQuake3 is a modernized Quake III Arena engine branch. Every change should prot
1616
- Keep release packaging deterministic. `.install/` is the staged distribution area, not a scratchpad.
1717
- Use `.tmp/` for temporary outputs, investigation notes, and disposable staging work.
1818
- Do not ship documentation that mixes end-user guidance with maintainer detail. Keep the user surface in `README.md` and deeper material in linked technical docs.
19-
- When versioning changes are required, update the canonical metadata in [`version/fnq3_version.h`](/e:/Repositories/FnQuake3/version/fnq3_version.h) first.
19+
- When versioning changes are required, update the canonical metadata in `version/fnq3_version.h` first.
2020

2121
## Local References
2222

23-
- [`README.md`](/e:/Repositories/FnQuake3/README.md): end-user overview.
24-
- [`BUILD.md`](/e:/Repositories/FnQuake3/BUILD.md): platform-specific build instructions.
25-
- [`docs/TECHNICAL.md`](/e:/Repositories/FnQuake3/docs/TECHNICAL.md): maintainer-facing project, release, and repo notes.
26-
- [`version/fnq3_version.h`](/e:/Repositories/FnQuake3/version/fnq3_version.h): single source of truth for project version metadata.
27-
- [`scripts/version.py`](/e:/Repositories/FnQuake3/scripts/version.py): version/channel helper for humans and CI.
28-
- [`scripts/generate_docs.py`](/e:/Repositories/FnQuake3/scripts/generate_docs.py): refreshes `README.md` and `.install/README.html` from templates.
29-
- [`scripts/release.py`](/e:/Repositories/FnQuake3/scripts/release.py): stages artifacts through `.install/` and produces release archives plus manifests.
30-
- [`.github/workflows/build.yml`](/e:/Repositories/FnQuake3/.github/workflows/build.yml): CI build, nightly packaging, and tagged release flow.
23+
- `README.md`: end-user overview.
24+
- `BUILD.md`: platform-specific build instructions.
25+
- `docs/fnquake3/TECHNICAL.md`: maintainer-facing project, release, and repo notes.
26+
- `version/fnq3_version.h`: single source of truth for project version metadata.
27+
- `scripts/version.py`: version/channel helper for humans and CI.
28+
- `scripts/generate_docs.py`: refreshes `README.md` and `.install/README.html` from templates.
29+
- `scripts/release.py`: stages artifacts through `.install/` and produces release archives plus manifests.
30+
- `.github/workflows/nightly.yml`: nightly packaging and release flow.
3131

3232
## Directory Map
3333

@@ -40,7 +40,7 @@ FnQuake3 is a modernized Quake III Arena engine branch. Every change should prot
4040

4141
## Release Workflow
4242

43-
1. Update [`version/fnq3_version.h`](/e:/Repositories/FnQuake3/version/fnq3_version.h) for the next tagged release.
43+
1. Update `version/fnq3_version.h` for the next tagged release.
4444
2. Run `python scripts/generate_docs.py` to refresh user-facing docs.
4545
3. Build platform artifacts.
4646
4. Run `python scripts/release.py --channel nightly` or `python scripts/release.py --channel release --ref-name <tag>` against the downloaded artifact directory.
@@ -50,4 +50,4 @@ FnQuake3 is a modernized Quake III Arena engine branch. Every change should prot
5050

5151
- If a change touches runtime identity strings, keep compatibility-sensitive behavior unchanged unless the user explicitly wants a compatibility break.
5252
- If you have to choose between a cleaner abstraction and a safer compatibility-preserving patch, default to the compatibility-preserving patch and document the tradeoff.
53-
- When release packaging changes, ensure `.install/README.html` remains valid and the package still includes `README.md`, `BUILD.md`, `LICENSE`, and `docs/TECHNICAL.md`.
53+
- When release packaging changes, ensure `.install/README.html` remains valid and the package still includes `LICENSE` and `docs/fnquake3/TECHNICAL.md`.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Fappin' Quake III, shortened to FnQuake3 or FnQ3.
66

77
<p>
88
<a href="BUILD.md"><img alt="Build Guide" src="https://img.shields.io/badge/Build-Guide-1f2937?style=for-the-badge"></a>
9-
<a href="docs/TECHNICAL.md"><img alt="Technical Notes" src="https://img.shields.io/badge/Technical-Notes-0f766e?style=for-the-badge"></a>
9+
<a href="docs/fnquake3/TECHNICAL.md"><img alt="Technical Notes" src="https://img.shields.io/badge/Technical-Notes-0f766e?style=for-the-badge"></a>
1010
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/License-GPL--2.0-c2410c?style=for-the-badge"></a>
1111
</p>
1212

@@ -53,7 +53,7 @@ FnQuake3 is a modernized Quake III Arena engine project built around a simple go
5353
- [Visuals Guide](docs/VISUALS.md) for player highlighting and the current visual presentation controls.
5454
- [Aspect Correction Guide](docs/ASPECT_CORRECTION.md) for HUD, menu, and cinematic presentation options.
5555
- [Console Guide](docs/CONSOLE.md) for console scaling, interaction, completion, and appearance.
56-
- [Technical Notes](docs/TECHNICAL.md) for maintainers, release flow, and repo conventions.
56+
- [Technical Notes](docs/fnquake3/TECHNICAL.md) for maintainers, release flow, and repo conventions.
5757
- [Agent Guide](AGENTS.md) for automation rules and local repository references.
5858

5959
## Project Priorities

0 commit comments

Comments
 (0)