Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/.github/workflows
diff options
context:
space:
mode:
authorLeitwolf112026-10-11 02:58:27 +0300
committerLeitwolf112026-10-11 02:58:27 +0300
commitab1214937f57fb81a56e615a0aef8269ade5da91 (patch)
tree4afab6721586456f88ea5cb3665ab5d407428ce9 /.github/workflows
parent5633c5c98ec073ae938253bcfc72430d5d9aee89 (diff)
downloadcatch3-ab1214937f57fb81a56e615a0aef8269ade5da91.tar.gz
Build on the platforms the Visual X# compiler builds on
The compiler that uses this framework first is built and tested on Windows with the Visual Studio 2026 image, macOS 15 and 26, Ubuntu 26.04 and Fedora 43. This repository was tested on Windows Server 2022 and 2025, macOS 14, 15 and 15 on Intel, and on no Linux at all. The Windows builds move to the windows-2025-vs2026 image, in the basic builds and in the Xmake, Bazel and Meson builds. The macOS builds and the sanitizer builds run on macos-15 and macos-26. A new workflow builds and tests on Ubuntu 26.04 and, in a container, on Fedora 43, with Clang, as C++14 and C++17, Debug and Release. Two jobs stay on windows-2022: the Premake job generates Visual Studio 2022 projects, and the Conan job names the Visual Studio 17 generator and the v144 runtime. Moving them means moving those tools to Visual Studio 2026, which is a change of its own.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/alternative-build-systems.yml2
-rw-r--r--.github/workflows/bazel-builds.yml2
-rw-r--r--.github/workflows/linux-builds.yml86
-rw-r--r--.github/workflows/mac-builds.yml2
-rw-r--r--.github/workflows/mac-sanitizer-builds.yml2
-rw-r--r--.github/workflows/meson-builds.yml2
-rw-r--r--.github/workflows/windows-simple-builds.yml2
7 files changed, 92 insertions, 6 deletions
diff --git a/.github/workflows/alternative-build-systems.yml b/.github/workflows/alternative-build-systems.yml
index e5e4338f..ebb51d90 100644
--- a/.github/workflows/alternative-build-systems.yml
+++ b/.github/workflows/alternative-build-systems.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [windows-2025, macos-15]
+ os: [windows-2025-vs2026, macos-15]
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
diff --git a/.github/workflows/bazel-builds.yml b/.github/workflows/bazel-builds.yml
index 5f3b31c7..892145d8 100644
--- a/.github/workflows/bazel-builds.yml
+++ b/.github/workflows/bazel-builds.yml
@@ -15,7 +15,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [windows-2025, macos-15]
+ os: [windows-2025-vs2026, macos-15]
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
diff --git a/.github/workflows/linux-builds.yml b/.github/workflows/linux-builds.yml
new file mode 100644
index 00000000..c6d39cd6
--- /dev/null
+++ b/.github/workflows/linux-builds.yml
@@ -0,0 +1,86 @@
+name: Linux Builds
+
+# The Linux hosts are those of the Visual X# compiler, which is the first
+# user of this framework: the current Ubuntu LTS, and Fedora in a container.
+# Both build with Clang, the compiler that project uses everywhere.
+
+on: [push, pull_request]
+
+permissions:
+ contents: read
+
+env:
+ CTEST_OUTPUT_ON_FAILURE: 1
+ CTEST_NO_TESTS_ACTION: error
+
+jobs:
+ ubuntu:
+ name: Ubuntu 26.04, C++${{matrix.std}}, ${{matrix.build_type}}
+ runs-on: ubuntu-26.04
+ timeout-minutes: 45
+ strategy:
+ fail-fast: false
+ matrix:
+ build_type: [Debug, Release]
+ std: [14, 17]
+
+ steps:
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
+ with:
+ persist-credentials: false
+
+ - name: Install Clang, CMake and Ninja
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y clang cmake ninja-build python3
+
+ - name: Configure
+ run: |
+ cmake --preset basic-tests -GNinja \
+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DCMAKE_CXX_STANDARD=${{matrix.std}} \
+ -DCATCH_BUILD_EXAMPLES=ON \
+ -DCATCH_BUILD_EXTRA_TESTS=ON
+
+ - name: Build
+ run: cmake --build build
+
+ - name: Test
+ run: ctest --test-dir build -j
+
+ fedora:
+ name: Fedora 43, C++${{matrix.std}}, ${{matrix.build_type}}
+ runs-on: ubuntu-26.04
+ container: fedora:43
+ timeout-minutes: 45
+ strategy:
+ fail-fast: false
+ matrix:
+ build_type: [Debug, Release]
+ std: [14, 17]
+
+ steps:
+ # Git comes first: without it the checkout falls back to an archive of
+ # the repository, which is not a checkout the tests can ask questions of.
+ - name: Install Git, Clang, CMake and Ninja
+ run: dnf install -y git clang gcc-c++ cmake ninja-build python3
+
+ - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
+ with:
+ persist-credentials: false
+
+ - name: Configure
+ run: |
+ cmake --preset basic-tests -GNinja \
+ -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DCMAKE_CXX_STANDARD=${{matrix.std}} \
+ -DCATCH_BUILD_EXAMPLES=ON \
+ -DCATCH_BUILD_EXTRA_TESTS=ON
+
+ - name: Build
+ run: cmake --build build
+
+ - name: Test
+ run: ctest --test-dir build -j
diff --git a/.github/workflows/mac-builds.yml b/.github/workflows/mac-builds.yml
index 7ba8dac5..1bf131fb 100644
--- a/.github/workflows/mac-builds.yml
+++ b/.github/workflows/mac-builds.yml
@@ -15,7 +15,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- image: [macos-14, macos-15, macos-15-intel]
+ image: [macos-15, macos-26]
build_type: [Debug, Release]
std: [14, 17]
diff --git a/.github/workflows/mac-sanitizer-builds.yml b/.github/workflows/mac-sanitizer-builds.yml
index a0265c5d..9aad456c 100644
--- a/.github/workflows/mac-sanitizer-builds.yml
+++ b/.github/workflows/mac-sanitizer-builds.yml
@@ -15,7 +15,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- image: [macos-15, macos-15-intel]
+ image: [macos-15, macos-26]
build_type: [Debug]
std: [17]
sanitizer: [thread, address]
diff --git a/.github/workflows/meson-builds.yml b/.github/workflows/meson-builds.yml
index 456f3205..cf72718d 100644
--- a/.github/workflows/meson-builds.yml
+++ b/.github/workflows/meson-builds.yml
@@ -12,7 +12,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [windows-2025, macos-15]
+ os: [windows-2025-vs2026, macos-15]
steps:
- uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
diff --git a/.github/workflows/windows-simple-builds.yml b/.github/workflows/windows-simple-builds.yml
index b6174220..18e15b99 100644
--- a/.github/workflows/windows-simple-builds.yml
+++ b/.github/workflows/windows-simple-builds.yml
@@ -16,7 +16,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [windows-2022, windows-2025]
+ os: [windows-2025-vs2026]
platform: [Win32, x64]
build_type: [Debug, Release]
std: [14, 17]