Skip to content

[WIP] Issue #33 — Add github actions#34

Merged
lefticus merged 1 commit intoChaiScript:masterfrom
leftibot:fix/issue-33-add-github-actions
Apr 17, 2026
Merged

[WIP] Issue #33 — Add github actions#34
lefticus merged 1 commit intoChaiScript:masterfrom
leftibot:fix/issue-33-add-github-actions

Conversation

@leftibot
Copy link
Copy Markdown
Contributor

Automated attempt by @leftibot. Opening as draft — verification failed.

Reason: no test files were detected in the diff

What changed

Fix #33: Add GitHub Actions CI workflow
Adds a CI workflow modeled on ChaiScript/ChaiScript's pattern: build and
test across Linux (GCC), macOS (AppleClang), and Windows (MSVC) in both
Debug and Release, plus ASAN+UBSAN sanitizer jobs on Linux and macOS.
The workflow reuses the project's existing CMake options
(ENABLE_ADDRESS_SANITIZER, ENABLE_UNDEFINED_SANITIZER), so no build-system
changes are required.
Co-Authored-By: Claude Opus 4.7 (1M context) noreply@anthropic.com

Files

 .github/workflows/ci.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 116 insertions(+)

Will close #33 once finalized.

Triggered by @lefticus.

Adds a CI workflow modeled on ChaiScript/ChaiScript's pattern: build and
test across Linux (GCC), macOS (AppleClang), and Windows (MSVC) in both
Debug and Release, plus ASAN+UBSAN sanitizer jobs on Linux and macOS.
The workflow reuses the project's existing CMake options
(ENABLE_ADDRESS_SANITIZER, ENABLE_UNDEFINED_SANITIZER), so no build-system
changes are required.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@lefticus lefticus marked this pull request as ready for review April 17, 2026 13:32
@lefticus lefticus merged commit dd116d7 into ChaiScript:master Apr 17, 2026
leftibot added a commit to leftibot/ChaiScript_Extras that referenced this pull request Apr 17, 2026
The CI introduced in ChaiScript#34 surfaced two failures rooted in the outdated
CMakeLists.txt fetched as part of ChaiScript 6.1.0:

1. macOS runners ship CMake 4.x, which removes compatibility with
   cmake_minimum_required(VERSION < 3.5). The fetched subproject still
   declares VERSION 2.8 and configure aborts. Setting
   CMAKE_POLICY_VERSION_MINIMUM to 3.5 before add_subdirectory forces an
   acceptable floor for the transitive project.

2. Windows MSVC builds fail compiling ChaiScript's own src/main.cpp (the
   `chai` REPL) - a missing <chrono> include in upstream 6.1.0. The REPL
   target is unconditionally declared by the subproject, so adding
   EXCLUDE_FROM_ALL on add_subdirectory keeps it out of the default build.
   chaiscript_extras only needs ChaiScript's headers, so nothing else
   changes.

Also modernized: bump cmake_minimum_required to 3.16, drop the now-unused
BUILD_MODULES toggle, and explicitly opt into CMP0169 OLD so the
deprecated FetchContent_Populate call is kept quiet on CMake 3.30+.

Note: this PR does not address the unrelated ASAN/UBSAN heap-use-after-free
surfaced by string_methods_test - that is a runtime bug in the
extras+ChaiScript 6.1.0 interaction and will be tracked separately.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add github actions

2 participants