Split compile all maps workflow into two parallel jobs (#91038)

- Change `_basemap.dm` so instead of templates being included when
`CIBUILDING` is defined, it's based off a separate `ALL_TEMPLATES` flag,
like `ALL_MAPS`, also made it not dependent on `ALL_MAPS` being defined,
so the two can run separately
- Changes build.js to generate `templates.dm` with the `ALL_TEMPLATES`
flag instead of `ALL_MAPS`
- Change the compile all maps workflow to have two separate jobs, one
that does `ALL_MAPS` and one that does `ALL_TEMPLATES`

The downstreams are starting to run out of memory during this workflow
because we have extra templates and maps, splitting it this way should
alleviate that problem (for rough, non-scientific numbers: Combined
workflow reaches 3.5GB and then crashes during holodeck templates using
bubber code, split like this the maps workflow reaches 1GB and finishes,
the templates workflow reaches 1.5GB and finishes)

No player facing changes
This commit is contained in:
Roxy
2025-05-14 16:34:06 -04:00
parent 92655515fd
commit 0e74eda469
3 changed files with 24 additions and 8 deletions

View File

@@ -8,7 +8,8 @@ on:
type: string
jobs:
compile_all_maps:
compile_all_stations:
name: Compile All Station Maps
runs-on: ubuntu-22.04
timeout-minutes: 5
@@ -27,3 +28,19 @@ jobs:
with:
dmb-location: tgstation.dmb
max-required-client-version: ${{inputs.max_required_byond_client}}
compile_all_templates:
name: Compile All Templates
runs-on: ubuntu-22.04
timeout-minutes: 5
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: ./.github/actions/setup_node
- name: Restore BYOND from Cache
uses: ./.github/actions/restore_or_install_byond
- name: Compile All Maps
run: |
source $HOME/BYOND/byond/bin/byondsetup
tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_TEMPLATES

View File

@@ -25,9 +25,8 @@
#include "map_files\moonstation\moonstation.dmm"
#include "map_files\BoxStation\BoxStation.dmm"
// BUBBER EDIT ADDITION END
#ifdef CIBUILDING
#include "templates.dm"
#endif
#endif
#ifdef ALL_TEMPLATES
#include "templates.dm"
#endif
#endif

View File

@@ -231,7 +231,7 @@ export const DmMapsIncludeTarget = new Juke.Target({
export const DmTarget = new Juke.Target({
parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter, SkipIconCutter],
dependsOn: ({ get }) => [
get(DefineParameter).includes('ALL_MAPS') && DmMapsIncludeTarget,
get(DefineParameter).includes('ALL_TEMPLATES') && DmMapsIncludeTarget,
!get(SkipIconCutter) && IconCutterTarget,
],
inputs: [
@@ -270,7 +270,7 @@ export const DmTarget = new Juke.Target({
export const DmTestTarget = new Juke.Target({
parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter],
dependsOn: ({ get }) => [
get(DefineParameter).includes('ALL_MAPS') && DmMapsIncludeTarget,
get(DefineParameter).includes('ALL_TEMPLATES') && DmMapsIncludeTarget,
IconCutterTarget,
],
executes: async ({ get }) => {
@@ -306,7 +306,7 @@ export const DmTestTarget = new Juke.Target({
export const AutowikiTarget = new Juke.Target({
parameters: [DefineParameter, DmVersionParameter, WarningParameter, NoWarningParameter],
dependsOn: ({ get }) => [
get(DefineParameter).includes('ALL_MAPS') && DmMapsIncludeTarget,
get(DefineParameter).includes('ALL_TEMPLATES') && DmMapsIncludeTarget,
IconCutterTarget,
],
outputs: [