Skip to content

Move CI pipelines to Github Actions#3

Merged
AndyMender merged 62 commits into
mainfrom
2-github-actions-ci
Dec 2, 2025
Merged

Move CI pipelines to Github Actions#3
AndyMender merged 62 commits into
mainfrom
2-github-actions-ci

Conversation

@AndyMender
Copy link
Copy Markdown
Owner

@AndyMender AndyMender commented Dec 1, 2025

Fixes #2

  • Moves CI from Travis CI to Github Actions

  • Builds raylib from source (github repo checkout)

  • Generates a Docker image called raylib_base containing raylib + several compiler toolchains

  • Builds the main raylib-games project on Clang 20, GCC 12, GCC 13 and GCC 14 in Github Actions job matrix

  • Removes old travis CI YAML

@AndyMender AndyMender self-assigned this Dec 1, 2025
@AndyMender
Copy link
Copy Markdown
Owner Author

Looks like the LLVM PPA doesn't allow multiple versions of clang at the same time. I am reducing them to clang 20. More are not a hard requirement.

@AndyMender
Copy link
Copy Markdown
Owner Author

I tried multiple approaches, but Ubuntu is making it quite hard to install multiple versions of LLVM/clang together. Either c++ ABI is missing and downstream projects fail to compile or different versions of c++ ABI packages clash.

I will try to focus on a single clang version, but in the future I will need to have different Docker images for different compiler versions.

@AndyMender
Copy link
Copy Markdown
Owner Author

I am benching this effort for now. Cross-compiling with clang for a given version seems to be completely broken. cmake is failing to find the correct stdc++ libs even though they're installed:

CMake Error at /usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:60 (message):
  The C++ compiler

    "/usr/bin/clang++-19"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: '/opt/raylib-games/build/CMakeFiles/CMakeScratch/TryCompile-WV2Pee'
    
    Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/gmake -f Makefile cmTC_e36f3/fast
    /usr/bin/gmake  -f CMakeFiles/cmTC_e36f3.dir/build.make CMakeFiles/cmTC_e36f3.dir/build
    gmake[1]: Entering directory '/opt/raylib-games/build/CMakeFiles/CMakeScratch/TryCompile-WV2Pee'
    Building CXX object CMakeFiles/cmTC_e36f3.dir/testCXXCompiler.cxx.o
    /usr/bin/clang++-19    -MD -MT CMakeFiles/cmTC_e36f3.dir/testCXXCompiler.cxx.o -MF CMakeFiles/cmTC_e36f3.dir/testCXXCompiler.cxx.o.d -o CMakeFiles/cmTC_e36f3.dir/testCXXCompiler.cxx.o -c /opt/raylib-games/build/CMakeFiles/CMakeScratch/TryCompile-WV2Pee/testCXXCompiler.cxx
    Linking CXX executable cmTC_e36f3
    /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e36f3.dir/link.txt --verbose=1
    /usr/bin/clang++-19 CMakeFiles/cmTC_e36f3.dir/testCXXCompiler.cxx.o -o cmTC_e36f3 
    /usr/bin/ld: cannot find -lstdc++: No such file or directory
    clang++-19: error: linker command failed with exit code 1 (use -v to see invocation)
    gmake[1]: *** [CMakeFiles/cmTC_e36f3.dir/build.make:100: cmTC_e36f3] Error 1
    gmake[1]: Leaving directory '/opt/raylib-games/build/CMakeFiles/CMakeScratch/TryCompile-WV2Pee'
    gmake: *** [Makefile:127: cmTC_e36f3/fast] Error 2
    
    

  

  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:4 (project)

What is stranger is that even the default clang setup doesn't really work.

@AndyMender
Copy link
Copy Markdown
Owner Author

Found the issue - clang++ is relying on GCC C++ components which are not installed by default if just installing regular gcc packages.

@AndyMender AndyMender changed the title [DRAFT] Move CI pipelines to Github Actions Move CI pipelines to Github Actions Dec 2, 2025
@AndyMender AndyMender marked this pull request as ready for review December 2, 2025 10:06
@AndyMender AndyMender added the enhancement New feature or request label Dec 2, 2025
@AndyMender AndyMender merged commit 7e39367 into main Dec 2, 2025
1 check passed
AndyMender added a commit that referenced this pull request Dec 2, 2025
@AndyMender AndyMender deleted the 2-github-actions-ci branch December 2, 2025 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move CI to Github Actions

1 participant