Skip to content

GitHub CI build and testing#109

Draft
EndeyshentLabs wants to merge 18 commits into
LensPlaysGames:mainfrom
EndeyshentLabs:github-ci
Draft

GitHub CI build and testing#109
EndeyshentLabs wants to merge 18 commits into
LensPlaysGames:mainfrom
EndeyshentLabs:github-ci

Conversation

@EndeyshentLabs

@EndeyshentLabs EndeyshentLabs commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

TODO:

  • Basic build on generic linux (ubuntu-latest)
  • Windows build
  • Testing suite
  • Compiler test
  • Conditional run (or not-run) based on commit message

Hopefully, will catch compiler incompatibilities quicker than the users.

@EndeyshentLabs

EndeyshentLabs commented Jul 9, 2026

Copy link
Copy Markdown
Contributor Author

The Windows build fails inside of C++ header <memory> with 24 MiB log with 221268 lines.

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

GitHub's ubuntu-latest is Ubuntu 24.04 and uses LLVM v18 (from 2024) so it's basically useless.

@LensPlaysGames

LensPlaysGames commented Jul 9, 2026

Copy link
Copy Markdown
Owner

I hate Ubuntu for exactly that reason
who is using software from 5 years ago??

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    container:
      image: fedora:latest

I've been seeing something like this online but, I really have no clue about this CI stuff.

Fedora at least has up to date tools

@LensPlaysGames

Copy link
Copy Markdown
Owner

Lots and lots of
D:\a\LensorCompilerCollection\LensorCompilerCollection\bld\libs\fmt\include\fmt\base.h(1224,45): warning: enumeration type in nested name specifier is incompatible with C++98 [-Wc++98-compat]

Er, why is it trying to compile c++98 compatible?

@LensPlaysGames

Copy link
Copy Markdown
Owner

I had a local AI yell at me about this

The problem is that clang-cl triggers both if (MSVC) and if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") blocks inside CMake, but it uses MSVC-style command line arguments.

@LensPlaysGames

LensPlaysGames commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Apparently latest is not the latest. Thanks macrohard
runs-on: ubuntu-26.04 llvm 21/22 and gcc 15

@LensPlaysGames

LensPlaysGames commented Jul 9, 2026

Copy link
Copy Markdown
Owner

I had a local AI yell at me about this

The problem is that clang-cl triggers both if (MSVC) and if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") blocks inside CMake, but it uses MSVC-style command line arguments.

Looks like we could use
https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_SIMULATE_ID.html
Or
https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_FRONTEND_VARIANT.html

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

I hate Ubuntu for exactly that reason who is using software from 5 years ago??

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    container:
      image: fedora:latest

I've been seeing something like this online but, I really have no clue about this CI stuff.

Fedora at least has up to date tools

I will look into that bit later. I was able to successfully build LCC locally on the fedora:latest image.

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

Apparently latest is not the latest. Thanks macrohard runs-on: ubuntu-26.04 llvm 21/22 and gcc 15

This is so bad, are they """testing""" images or something before making them latest? How do you even do that, aren't these ubuntu images pulled straight from docker or something?

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

I almost want to close this PR, this is so bad. On sourcehut the images for are always up to date, can't multi-billion dollar corporation achieve this?

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

I say almost, because it will be useful for catching compiler (LLVM) stupidity.

@LensPlaysGames

Copy link
Copy Markdown
Owner

Apparently latest is not the latest. Thanks macrohard runs-on: ubuntu-26.04 llvm 21/22 and gcc 15

This is so bad, are they """testing""" images or something before making them latest? How do you even do that, aren't these ubuntu images pulled straight from docker or something?

https://docs.github.com/en/actions/reference/runners/github-hosted-runners

Note
The -latest runner images are the latest stable images that GitHub provides, and might not be the most recent version of the operating system available from the operating system vendor.

@LensPlaysGames

Copy link
Copy Markdown
Owner

I hate Ubuntu for exactly that reason who is using software from 5 years ago??

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    container:
      image: fedora:latest

I've been seeing something like this online but, I really have no clue about this CI stuff.

Fedora at least has up to date tools

I will look into that bit later. I was able to successfully build LCC locally on the fedora:latest image.

You can run actions locally?

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

No, I just use docker.

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

It is close-enough to actions.

@LensPlaysGames

Copy link
Copy Markdown
Owner

Lmao oh yeah may want to disable LTO

@EndeyshentLabs

Copy link
Copy Markdown
Contributor Author

Wait.. the test suite returns 0 even when it errors out?

@LensPlaysGames

Copy link
Copy Markdown
Owner

Er, afaik we had issues with cmake not running further test suites just because an earlier failed? So, as long as the tests end up running (no ICEs hit), cmake will view it as a success (at the moment). This could easily be changed afaik

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.

2 participants