Skip to content

[CI] Fix build workflows and stale CI references - #157

Merged
billy1arm merged 4 commits into
mangosone:masterfrom
r-log:ci/workflow-and-doc-fixes
Aug 3, 2026
Merged

[CI] Fix build workflows and stale CI references#157
billy1arm merged 4 commits into
mangosone:masterfrom
r-log:ci/workflow-and-doc-fixes

Conversation

@r-log

@r-log r-log commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Three independent defects in the GitHub Actions build workflows. No AppVeyor configuration is touched.

1. Six configure flags are silently discarded.
The Configure step uses a YAML folded scalar (run: >), which joins every line into a single shell command. bash then treats the embedded # comment — and everything after it — as a comment, so these never reach cmake:

-DWITH_NET_TESTS=0 -DSOAP=1 -DSCRIPT_LIB_ELUNA=1 -DSCRIPT_LIB_SD3=1 -DPLAYERBOTS=… -DPCH=…

Confirmed in the job logs: the configure summary prints Support for SOAP : No (default) despite -DSOAP=1 being written. Fixed by moving the comment above the step; the comment's meaning is unchanged and run: > is kept.

2. The compiler cache has never persisted.
CCACHE_DIR / SCCACHE_DIR contained .., which actions/cache rejects at save time:

Saving cache failed: Invalid pattern '…/…/../ccache'.
Relative pathing '.' and '..' is not allowed.

Every subsequent run reports No cache found and rebuilds cold. Measured hit rates: ccache 1.5–1.9%, sccache 0.00%. The overrides are removed so ccache-action manages its own directory. BUILD_DIR moves to ${{ runner.temp }} rather than being deleted — it must stay outside the workspace or the "Verify the working tree is clean" step fails.

3. Stale CI references.
The README links core_build.yml, which does not exist; the workflow is core_linux_build.yml.

Verification: each workflow was parsed with PyYAML and the Configure step folded exactly as the shell receives it, asserting no # survives, all six flags are present, and no .. remains in the command or in any job-level env.


This change is Reviewable

r-log added 4 commits August 3, 2026 05:03
The Configure step used a YAML folded scalar (run: >), which joins every
line into one shell command. The inline comment above the socket-test
flag turned everything after it into a shell comment, silently dropping
-DWITH_NET_TESTS=0, -DSOAP=1, -DSCRIPT_LIB_ELUNA=1, -DSCRIPT_LIB_SD3=1,
-DPLAYERBOTS=1, and -DPCH=0/1. Moved the comment above the step instead.

Also drop the CCACHE_DIR/SCCACHE_DIR overrides and repoint BUILD_DIR at
runner.temp: the previous ../ccache and ../build paths contain '..',
which actions/cache refuses to save, so the compiler cache never
persisted across runs.
SlProWeb's Win64OpenSSL installer places provider DLLs (legacy.dll,
default.dll) beside openssl.exe, but the binary's compiled MODULESDIR
still names the default installation path. Set OPENSSL_MODULES so the
providers actually load. Ports the fix already carried on mangosfour.
The [10] link definition pointed at core_build.yml, which does not
exist under .github/workflows/. Point it at core_linux_build.yml,
the file the adjacent badge already references.
The runner context is not available in jobs.<job_id>.env, so ${{ runner.temp }}
there makes the whole workflow file invalid and GitHub refuses to run it.
BUILD_DIR is never handed to actions/cache, so it does not need to avoid '..';
only CCACHE_DIR and SCCACHE_DIR did, and those stay removed.
@AppVeyorBot

Copy link
Copy Markdown

@AppVeyorBot

Copy link
Copy Markdown

@billy1arm
billy1arm merged commit a83cdf3 into mangosone:master Aug 3, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants