Skip to content
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 16 additions & 37 deletions .github/workflows/ci_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,16 @@ jobs:
fail-fast: false
matrix:
presets:
- preset: "gcc-debug"
platform: "ubuntu-latest"
- preset: "gcc-release"
platform: "ubuntu-latest"
name: "Preset: ${{ matrix.presets.preset }} on ${{ matrix.presets.platform }}"
runs-on: ${{ matrix.presets.platform }}
- preset: gcc-debug
tag: gnu-14
- preset: gcc-release
tag: gnu-14
name: "Preset: ${{ matrix.presets.preset }}"
runs-on: ubuntu-latest
container:
image: ghcr.io/bemanproject/infra:test-${{ matrix.presets.tag }}
steps:
- uses: actions/checkout@v4
- name: Setup build environment
uses: lukka/get-cmake@latest
with:
cmakeVersion: "~3.25.0"
ninjaVersion: "^1.11.1"
- name: Setup MSVC
if: startsWith(matrix.presets.platform, 'windows')
uses: TheMrMilchmann/setup-msvc-dev@v3
Expand All @@ -41,12 +38,13 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [ubuntu-24.04]
compiler:
- cpp: g++
c: gcc
tag: gnu-14
- cpp: clang++
c: clang
tag: llvm-20
cpp_version: [20, 23]
cmake_args:
- description: "Default"
Expand All @@ -60,42 +58,23 @@ jobs:
compiler:
cpp: g++
c: gcc
tag: gnu-14
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we have access to gcc-15 yet? That would be a nice addition here. It was released about a month ago so should be widely available on various linux's

Copy link
Member Author

@wusatosi wusatosi May 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Including gcc-15 would require us to build our own compiler if we want the assumption of testing container being based on ubuntu. This is because we grab all the compilers from package manager, and gcc-15 has not been released into mainstream package managers for ubuntu yet. Testing for testing container 1.0 is already a big pain so I want to get something landed first, let's push for gcc-15 later.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gcc-15 is available in ubuntu/plucky and ubuntu/rolling⁠ but I don't know how stable those containers are

cpp_version: 20
cmake_args:
description: "Dynamic"
cmake_args: "-DBUILD_SHARED_LIBS=on"

name: "Build & Test: ${{ matrix.compiler.c }} ${{ matrix.cpp_version }} ${{ matrix.cmake_args.description }}"
runs-on: ${{ matrix.platform }}
runs-on: ubuntu-latest
container:
image: ghcr.io/bemanproject/infra:test-${{ matrix.compiler.tag }}
steps:
- uses: actions/checkout@v4
- name: Install Ninja
uses: lukka/get-cmake@latest
with:
cmakeVersion: "~3.25.0"
ninjaVersion: "^1.11.1"
- name: Install latest compiler
run: |
if [ "${{ matrix.compiler.cpp}}" == "g++" ]; then
# Install gcc-14
sudo apt-get update
sudo apt-get install -y gcc-14 g++-14

sudo rm /usr/bin/gcc
sudo ln -s /usr/bin/gcc-14 /usr/bin/gcc

sudo rm /usr/bin/g++
sudo ln -s /usr/bin/g++-14 /usr/bin/g++
else
# Install llvm
sudo bash -c "$(wget -O - https://apt.llvm.org/llvm.sh)"
fi
- name: Print installed software
run: |
clang++ --version
g++ --version
cmake --version
ninja --version
ctest --version
- name: Configure CMake
run: |
cmake -B build -S . -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version }} ${{ matrix.cmake_args.args }}
Expand Down Expand Up @@ -141,7 +120,7 @@ jobs:
- class: llvm
version: 17
container:
image: ghcr.io/wusatosi/cpp-docker:${{ matrix.compilers.class }}-${{ matrix.compilers.version }}
image: ghcr.io/bemanproject/infra:test-${{ matrix.compilers.class }}-${{ matrix.compilers.version }}
name: "Compiler: ${{ matrix.compilers.class }} ${{ matrix.compilers.version }}"
steps:
- uses: actions/checkout@v4
Expand Down