From b2f246830331add4d795d3207db7bf4c838990a5 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Mon, 16 Feb 2026 05:41:22 +0900 Subject: [PATCH 01/31] Refine deps caching --- .github/workflows/ci.yml | 30 +++++++++++++++++++++++++++--- modules/iris | 2 +- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a4f89c24..a9b84f1b7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -172,7 +172,9 @@ jobs: uses: actions/cache/restore@v4 with: key: deps-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.env-info.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} - path: ${{ github.workspace }}/build/_deps + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp # Adapt CMP0168; enable caching in CI # https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_FULLY_DISCONNECTED @@ -199,16 +201,38 @@ jobs: -DIRIS_TEST_X4=${{ case(matrix.components == 'x4', 'ON', 'OFF') }} \ -S . + - name: Check Deps build time stamp (pre-build) + id: pre-build-check + shell: bash + run: | + if [ -e build/.iris_deps_build_stamp ]; then + echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT + else + echo "deps-timestamp=0" >> $GITHUB_OUTPUT + fi + + - name: Try building Deps + run: | + cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target iris_deps_build_check ${{ matrix.compiler.builder_additional_args }} + + - name: Check Deps build time stamp (post-build) + id: post-build-check + shell: bash + run: | + echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT + - name: Build Tests run: | cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} ${{ matrix.compiler.builder_additional_args }} - name: Cache CMake Dependencies (save) - if: steps.cache-deps.outputs.cache-hit != 'true' + if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp uses: actions/cache/save@v4 with: key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: ${{ github.workspace }}/build/_deps + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp - name: Test env: diff --git a/modules/iris b/modules/iris index e1d143a0c..416b3715d 160000 --- a/modules/iris +++ b/modules/iris @@ -1 +1 @@ -Subproject commit e1d143a0c0ece7373ad73abe999602220140d096 +Subproject commit 416b3715d28ab2c9a17370c8d6aecca7b58e635a From 90b72764664deec9066424bb98a35601723bba99 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Mon, 16 Feb 2026 05:43:44 +0900 Subject: [PATCH 02/31] Enable IRIS_CI --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a9b84f1b7..637bfb623 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -197,6 +197,7 @@ jobs: -DCMAKE_CXX_FLAGS="${{ matrix.compiler.cxxflags }}" \ -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version.number }} \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type.name }} \ + -DIRIS_CI=ON \ -DIRIS_TEST_ALLOY=${{ case(matrix.components == 'alloy' || matrix.components == 'x4', 'ON', 'OFF') }} \ -DIRIS_TEST_X4=${{ case(matrix.components == 'x4', 'ON', 'OFF') }} \ -S . From 0cff232ccf4ac1e92272eb41be76d44a7ba286cd Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Mon, 16 Feb 2026 20:45:36 +0900 Subject: [PATCH 03/31] Rename cache key --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5f5590ab..ac5b9ed40 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -173,7 +173,7 @@ jobs: id: cache-deps uses: actions/cache/restore@v4 with: - key: deps-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.env-info.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} + key: deps2-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.env-info.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} path: | ${{ github.workspace }}/build/_deps ${{ github.workspace }}/build/.iris_deps_build_stamp @@ -199,9 +199,9 @@ jobs: -DCMAKE_CXX_FLAGS="${{ matrix.compiler.cxxflags }}" \ -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version.number }} \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type.name }} \ - -DIRIS_CI=ON \ -DIRIS_TEST_ALLOY=${{ case(matrix.components == 'alloy', 'ON', 'OFF') }} \ -DIRIS_TEST_X4=${{ case(matrix.components == 'x4', 'ON', 'OFF') }} \ + -DIRIS_CI=ON \ -S . - name: Check Deps build time stamp (pre-build) From af7719e65e7c15d049de4d946a2fc1e1389d7270 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 01:45:04 +0900 Subject: [PATCH 04/31] Split deps build --- .github/actions/setup/action.yml | 76 ++++++++++++++++++ .github/workflows/ci.yml | 129 ++++++++++++++++--------------- 2 files changed, 143 insertions(+), 62 deletions(-) create mode 100644 .github/actions/setup/action.yml diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml new file mode 100644 index 000000000..cfb93b6b9 --- /dev/null +++ b/.github/actions/setup/action.yml @@ -0,0 +1,76 @@ +# Copyright 2026 The Iris Project Contributors +# +# Distributed under the Boost Software License, Version 1.0. +# https://www.boost.org/LICENSE_1_0.txt + +name: Setup Toolchain +description: Checkout, install compiler, and fetch environment info + +inputs: + os-name: + required: true + compiler-toolset: + required: true + compiler-version: + required: true + compiler-executable: + required: true + +outputs: + compiler-full-version: + description: Full version string of the compiler + value: ${{ steps.env-info.outputs.compiler-full-version }} + +runs: + using: composite + steps: + - uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Initialize Ubuntu + if: inputs.os-name == 'ubuntu' + shell: bash + run: | + sudo echo "set man-db/auto-update false" | sudo debconf-communicate + sudo dpkg-reconfigure man-db + + - name: Setup GCC + if: inputs.compiler-toolset == 'gcc' + shell: bash + run: | + sudo apt-get update + sudo apt-get install -y g++-${{ inputs.compiler-version }} + + - name: Setup Clang + if: inputs.compiler-toolset == 'clang' + shell: bash + run: | + wget https://apt.llvm.org/llvm.sh + chmod +x ./llvm.sh + sudo ./llvm.sh ${{ inputs.compiler-version }} + sudo apt-get install -y libc++-${{ inputs.compiler-version }}-dev libc++abi-${{ inputs.compiler-version }}-dev libunwind-${{ inputs.compiler-version }}-dev + + - uses: TheMrMilchmann/setup-msvc-dev@v3 + if: inputs.os-name == 'windows' + with: + arch: x64 + + - name: Fetch Environment Info + id: env-info + shell: bash + run: | + set -e + case "${{ inputs.compiler-toolset }}" in + "gcc") + COMPILER_FULL_VERSION=$(${{ inputs.compiler-executable }} -dumpfullversion -dumpversion) + ;; + "clang") + COMPILER_FULL_VERSION=$(${{ inputs.compiler-executable }} -dumpversion) + ;; + "msvc") + COMPILER_FULL_VERSION=$(powershell -NoProfile -Command "(Get-Command ${{ inputs.compiler-executable }}).FileVersionInfo.FileVersion") + ;; + esac + echo "COMPILER_FULL_VERSION=$COMPILER_FULL_VERSION" + echo "compiler-full-version=$COMPILER_FULL_VERSION" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ac5b9ed40..085e237da 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,7 +10,7 @@ on: pull_request: push: branches: - - 'main' + - "main" concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -58,9 +58,8 @@ jobs: console.log('result: ', result); return result; - - build: - name: "[${{ matrix.cpp_version.name }}] ${{ matrix.components }} | ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" + deps: + name: "deps | [${{ matrix.cpp_version.name }}] ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" needs: changes if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} @@ -70,7 +69,7 @@ jobs: strategy: fail-fast: false - matrix: + matrix: &base-matrix os: - name: ubuntu version: 24.04 @@ -103,10 +102,7 @@ jobs: builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl - components: ${{ fromJSON(needs.changes.outputs.components) }} - exclude: - # Blacklist all invalid combinations of environments - os: name: windows compiler: @@ -121,59 +117,20 @@ jobs: name: MSVC steps: - - uses: actions/checkout@v5 + - name: Setup Toolchain + id: setup + uses: ${{ github.workspace }}/.github/actions/setup with: - submodules: recursive - - - name: Initialize Ubuntu - if: matrix.os.name == 'ubuntu' - run: | - sudo echo "set man-db/auto-update false" | sudo debconf-communicate - sudo dpkg-reconfigure man-db - - - name: Setup GCC - if: matrix.compiler.toolset == 'gcc' - run: | - sudo apt-get update - sudo apt-get install -y g++-${{ matrix.compiler.version }} - - - name: Setup Clang - if: matrix.compiler.toolset == 'clang' - run: | - wget https://apt.llvm.org/llvm.sh - chmod +x ./llvm.sh - sudo ./llvm.sh ${{ matrix.compiler.version }} - sudo apt-get install -y libc++-${{ matrix.compiler.version }}-dev libc++abi-${{ matrix.compiler.version }}-dev libunwind-${{ matrix.compiler.version }}-dev - - - uses: TheMrMilchmann/setup-msvc-dev@v3 - if: matrix.os.name == 'windows' - with: - arch: x64 - - - name: Fetch Environment Info - id: env-info - shell: bash - run: | - set -e - case "${{ matrix.compiler.toolset }}" in - "gcc") - COMPILER_FULL_VERSION=$(${{ matrix.compiler.executable }} -dumpfullversion -dumpversion) - ;; - "clang") - COMPILER_FULL_VERSION=$(${{ matrix.compiler.executable }} -dumpversion) - ;; - "msvc") - COMPILER_FULL_VERSION=$(powershell -NoProfile -Command "(Get-Command ${{ matrix.compiler.executable }}).FileVersionInfo.FileVersion") - ;; - esac - echo "COMPILER_FULL_VERSION=$COMPILER_FULL_VERSION" - echo "compiler-full-version=$COMPILER_FULL_VERSION" >> "$GITHUB_OUTPUT" + os-name: ${{ matrix.os.name }} + compiler-toolset: ${{ matrix.compiler.toolset }} + compiler-version: ${{ matrix.compiler.version }} + compiler-executable: ${{ matrix.compiler.executable }} - name: Cache CMake Dependencies (restore) id: cache-deps uses: actions/cache/restore@v4 with: - key: deps2-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.env-info.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} + key: deps2-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.setup.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} path: | ${{ github.workspace }}/build/_deps ${{ github.workspace }}/build/.iris_deps_build_stamp @@ -199,8 +156,8 @@ jobs: -DCMAKE_CXX_FLAGS="${{ matrix.compiler.cxxflags }}" \ -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version.number }} \ -DCMAKE_BUILD_TYPE=${{ matrix.build_type.name }} \ - -DIRIS_TEST_ALLOY=${{ case(matrix.components == 'alloy', 'ON', 'OFF') }} \ - -DIRIS_TEST_X4=${{ case(matrix.components == 'x4', 'ON', 'OFF') }} \ + -DIRIS_TEST_ALLOY=OFF \ + -DIRIS_TEST_X4=OFF \ -DIRIS_CI=ON \ -S . @@ -214,7 +171,7 @@ jobs: echo "deps-timestamp=0" >> $GITHUB_OUTPUT fi - - name: Try building Deps + - name: Build Deps run: | cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target iris_deps_build_check ${{ matrix.compiler.builder_additional_args }} @@ -224,10 +181,6 @@ jobs: run: | echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT - - name: Build Tests - run: | - cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} ${{ matrix.compiler.builder_additional_args }} - - name: Cache CMake Dependencies (save) if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp uses: actions/cache/save@v4 @@ -237,6 +190,58 @@ jobs: ${{ github.workspace }}/build/_deps ${{ github.workspace }}/build/.iris_deps_build_stamp + build: + name: "[${{ matrix.cpp_version.name }}] ${{ matrix.components }} | ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" + + needs: [changes, deps] + if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} + + runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} + + strategy: + fail-fast: false + + matrix: + <<: *base-matrix + components: ${{ fromJSON(needs.changes.outputs.components) }} + + steps: + - name: Setup Toolchain + id: setup + uses: ${{ github.workspace }}/.github/actions/setup + with: + os-name: ${{ matrix.os.name }} + compiler-toolset: ${{ matrix.compiler.toolset }} + compiler-version: ${{ matrix.compiler.version }} + compiler-executable: ${{ matrix.compiler.executable }} + + - name: Cache CMake Dependencies (restore) + id: cache-deps + uses: actions/cache/restore@v4 + with: + key: deps2-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.setup.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp + + - name: Configure + shell: bash + run: | + set -xe + cmake -DFETCHCONTENT_FULLY_DISCONNECTED=ON -B build \ + -DCMAKE_CXX_COMPILER=${{ matrix.compiler.executable }} \ + -DCMAKE_CXX_FLAGS="${{ matrix.compiler.cxxflags }}" \ + -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version.number }} \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type.name }} \ + -DIRIS_TEST_ALLOY=${{ case(matrix.components == 'alloy', 'ON', 'OFF') }} \ + -DIRIS_TEST_X4=${{ case(matrix.components == 'x4', 'ON', 'OFF') }} \ + -DIRIS_CI=ON \ + -S . + + - name: Build Tests + run: | + cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} ${{ matrix.compiler.builder_additional_args }} + - name: Test env: CLICOLOR_FORCE: 1 From 1a0ef383067f81f42e591a4cc2c03c2ad87369c0 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 01:46:50 +0900 Subject: [PATCH 05/31] Fix --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 085e237da..98bb2773e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: steps: - name: Setup Toolchain id: setup - uses: ${{ github.workspace }}/.github/actions/setup + uses: ./.github/actions/setup with: os-name: ${{ matrix.os.name }} compiler-toolset: ${{ matrix.compiler.toolset }} @@ -208,7 +208,7 @@ jobs: steps: - name: Setup Toolchain id: setup - uses: ${{ github.workspace }}/.github/actions/setup + uses: ./.github/actions/setup with: os-name: ${{ matrix.os.name }} compiler-toolset: ${{ matrix.compiler.toolset }} From eb48a31bc2387c70dc900ebc2b3bd20ac5e31f45 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 01:51:05 +0900 Subject: [PATCH 06/31] Fix2 --- .github/workflows/ci.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 98bb2773e..e3f067d60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -69,23 +69,23 @@ jobs: strategy: fail-fast: false - matrix: &base-matrix - os: + matrix: + os: &os-matrix - name: ubuntu version: 24.04 - name: windows version: 2022 - build_type: + build_type: &build-type-matrix - name: Debug lowercase: debug - name: Release lowercase: release - cpp_version: + cpp_version: &cpp-version-matrix - name: C++23 number: 23 - name: C++26 number: 26 - compiler: + compiler: &compiler-matrix - name: GCC toolset: gcc version: 14 @@ -102,7 +102,7 @@ jobs: builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl - exclude: + exclude: &exclude-matrix - os: name: windows compiler: @@ -202,8 +202,12 @@ jobs: fail-fast: false matrix: - <<: *base-matrix + os: *os-matrix + build_type: *build-type-matrix + cpp_version: *cpp-version-matrix + compiler: *compiler-matrix components: ${{ fromJSON(needs.changes.outputs.components) }} + exclude: *exclude-matrix steps: - name: Setup Toolchain From 2aa54e8dc0752225038f1372f7a8101f2c2d9314 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 01:53:06 +0900 Subject: [PATCH 07/31] Fix? --- .github/actions/setup/action.yml | 4 ---- .github/workflows/ci.yml | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index cfb93b6b9..06c75e760 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -24,10 +24,6 @@ outputs: runs: using: composite steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - name: Initialize Ubuntu if: inputs.os-name == 'ubuntu' shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e3f067d60..23b2ae41f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,6 +117,8 @@ jobs: name: MSVC steps: + - uses: actions/checkout@v5 + - name: Setup Toolchain id: setup uses: ./.github/actions/setup @@ -210,6 +212,9 @@ jobs: exclude: *exclude-matrix steps: + - uses: actions/checkout@v5 + with: + submodules: recursive - name: Setup Toolchain id: setup uses: ./.github/actions/setup From 0c78284bf5a7492fe3afa5a5fdc54a76c1d1b78c Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 01:54:32 +0900 Subject: [PATCH 08/31] Checkout recursively --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23b2ae41f..1eccd25dd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -118,7 +118,8 @@ jobs: steps: - uses: actions/checkout@v5 - + with: + submodules: recursive - name: Setup Toolchain id: setup uses: ./.github/actions/setup From 0fbccac0bae2e3c935804f5b2fc9500b7784aced Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 02:00:30 +0900 Subject: [PATCH 09/31] Refactor --- .github/actions/setup/action.yml | 10 ++++++++++ .github/workflows/ci.yml | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 06c75e760..d5fc97f7d 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -9,17 +9,26 @@ description: Checkout, install compiler, and fetch environment info inputs: os-name: required: true + os-version: + required: true compiler-toolset: required: true compiler-version: required: true compiler-executable: required: true + cpp-version-name: + required: true + build-type-name: + required: true outputs: compiler-full-version: description: Full version string of the compiler value: ${{ steps.env-info.outputs.compiler-full-version }} + deps-cache-key: + description: Cache key for CMake dependencies + value: ${{ steps.env-info.outputs.deps-cache-key }} runs: using: composite @@ -70,3 +79,4 @@ runs: esac echo "COMPILER_FULL_VERSION=$COMPILER_FULL_VERSION" echo "compiler-full-version=$COMPILER_FULL_VERSION" >> "$GITHUB_OUTPUT" + echo "deps-cache-key=deps-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1eccd25dd..74c2f955e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,8 +58,8 @@ jobs: console.log('result: ', result); return result; - deps: - name: "deps | [${{ matrix.cpp_version.name }}] ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" + prepare-deps: + name: "[${{ matrix.cpp_version.name }}] deps for ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" needs: changes if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} @@ -120,20 +120,24 @@ jobs: - uses: actions/checkout@v5 with: submodules: recursive + - name: Setup Toolchain id: setup uses: ./.github/actions/setup with: os-name: ${{ matrix.os.name }} + os-version: ${{ matrix.os.version }} compiler-toolset: ${{ matrix.compiler.toolset }} compiler-version: ${{ matrix.compiler.version }} compiler-executable: ${{ matrix.compiler.executable }} + cpp-version-name: ${{ matrix.cpp_version.name }} + build-type-name: ${{ matrix.build_type.name }} - name: Cache CMake Dependencies (restore) id: cache-deps uses: actions/cache/restore@v4 with: - key: deps2-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.setup.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} + key: ${{ steps.setup.outputs.deps-cache-key }} path: | ${{ github.workspace }}/build/_deps ${{ github.workspace }}/build/.iris_deps_build_stamp @@ -196,7 +200,7 @@ jobs: build: name: "[${{ matrix.cpp_version.name }}] ${{ matrix.components }} | ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" - needs: [changes, deps] + needs: [changes, prepare-deps] if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} @@ -216,20 +220,24 @@ jobs: - uses: actions/checkout@v5 with: submodules: recursive + - name: Setup Toolchain id: setup uses: ./.github/actions/setup with: os-name: ${{ matrix.os.name }} + os-version: ${{ matrix.os.version }} compiler-toolset: ${{ matrix.compiler.toolset }} compiler-version: ${{ matrix.compiler.version }} compiler-executable: ${{ matrix.compiler.executable }} + cpp-version-name: ${{ matrix.cpp_version.name }} + build-type-name: ${{ matrix.build_type.name }} - name: Cache CMake Dependencies (restore) id: cache-deps uses: actions/cache/restore@v4 with: - key: deps2-${{ matrix.os.name }}-${{ matrix.os.version }}-${{ matrix.compiler.toolset }}-${{ steps.setup.outputs.compiler-full-version }}-${{ matrix.cpp_version.name }}-${{ matrix.build_type.name }} + key: ${{ steps.setup.outputs.deps-cache-key }} path: | ${{ github.workspace }}/build/_deps ${{ github.workspace }}/build/.iris_deps_build_stamp From 2e71afb64649b7d4f426d55b5ca8d82778f55ec3 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 07:30:50 +0900 Subject: [PATCH 10/31] Do things in parallel --- .github/workflows/build.yml | 195 ++++++++++++++++++++++++++++++++++++ .github/workflows/ci.yml | 181 ++++----------------------------- 2 files changed, 215 insertions(+), 161 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..3657342dc --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,195 @@ +# Copyright 2026 The Iris Project Contributors +# +# Distributed under the Boost Software License, Version 1.0. +# https://www.boost.org/LICENSE_1_0.txt + +name: Build + +on: + workflow_call: + inputs: + os-name: + required: true + type: string + os-version: + required: true + type: string + build-type-name: + required: true + type: string + cpp-version-name: + required: true + type: string + cpp-version-number: + required: true + type: string + compiler-toolset: + required: true + type: string + compiler-version: + required: true + type: string + compiler-executable: + required: true + type: string + compiler-cxxflags: + required: false + type: string + default: '' + compiler-builder-additional-args: + required: false + type: string + default: '' + components: + required: true + type: string + description: 'JSON array of components to build (e.g. ["alloy","x4"])' + +env: + IRIS_X4_BUILD_JOBS: 4 + +jobs: + prepare-deps: + runs-on: ${{ inputs.os-name }}-${{ inputs.os-version }} + + steps: + - uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Setup Toolchain + id: setup + uses: ./.github/actions/setup + with: + os-name: ${{ inputs.os-name }} + os-version: ${{ inputs.os-version }} + compiler-toolset: ${{ inputs.compiler-toolset }} + compiler-version: ${{ inputs.compiler-version }} + compiler-executable: ${{ inputs.compiler-executable }} + cpp-version-name: ${{ inputs.cpp-version-name }} + build-type-name: ${{ inputs.build-type-name }} + + - name: Cache CMake Dependencies (restore) + id: cache-deps + uses: actions/cache/restore@v4 + with: + key: ${{ steps.setup.outputs.deps-cache-key }} + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp + + # Adapt CMP0168; enable caching in CI + # https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_FULLY_DISCONNECTED + - name: Setup Cached CMake Dependencies + id: deps-info + shell: bash + run: | + if [ "${{ steps.cache-deps.outputs.cache-hit }}" = "true" ]; then + echo "IRIS_X4_CMAKE_ARGS=-DFETCHCONTENT_FULLY_DISCONNECTED=ON" >> "$GITHUB_OUTPUT" + else + echo "IRIS_X4_CMAKE_ARGS=" >> "$GITHUB_OUTPUT" + fi + + - name: Configure + shell: bash + run: | + set -xe + cmake ${{ steps.deps-info.outputs.IRIS_X4_CMAKE_ARGS }} -B build \ + -DCMAKE_CXX_COMPILER=${{ inputs.compiler-executable }} \ + -DCMAKE_CXX_FLAGS="${{ inputs.compiler-cxxflags }}" \ + -DCMAKE_CXX_STANDARD=${{ inputs.cpp-version-number }} \ + -DCMAKE_BUILD_TYPE=${{ inputs.build-type-name }} \ + -DIRIS_TEST_ALLOY=OFF \ + -DIRIS_TEST_X4=OFF \ + -DIRIS_CI=ON \ + -S . + + - name: Check Deps build time stamp (pre-build) + id: pre-build-check + shell: bash + run: | + if [ -e build/.iris_deps_build_stamp ]; then + echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT + else + echo "deps-timestamp=0" >> $GITHUB_OUTPUT + fi + + - name: Build Deps + run: | + cmake --build build --config ${{ inputs.build-type-name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target iris_deps_build_check ${{ inputs.compiler-builder-additional-args }} + + - name: Check Deps build time stamp (post-build) + id: post-build-check + shell: bash + run: | + echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT + + - name: Cache CMake Dependencies (save) + if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp + uses: actions/cache/save@v4 + with: + key: ${{ steps.cache-deps.outputs.cache-primary-key }} + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp + + build: + needs: prepare-deps + + runs-on: ${{ inputs.os-name }}-${{ inputs.os-version }} + + strategy: + fail-fast: false + + matrix: + component: ${{ fromJSON(inputs.components) }} + + steps: + - uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Setup Toolchain + id: setup + uses: ./.github/actions/setup + with: + os-name: ${{ inputs.os-name }} + os-version: ${{ inputs.os-version }} + compiler-toolset: ${{ inputs.compiler-toolset }} + compiler-version: ${{ inputs.compiler-version }} + compiler-executable: ${{ inputs.compiler-executable }} + cpp-version-name: ${{ inputs.cpp-version-name }} + build-type-name: ${{ inputs.build-type-name }} + + - name: Cache CMake Dependencies (restore) + id: cache-deps + uses: actions/cache/restore@v4 + with: + key: ${{ steps.setup.outputs.deps-cache-key }} + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp + + - name: Configure + shell: bash + run: | + set -xe + cmake -DFETCHCONTENT_FULLY_DISCONNECTED=ON -B build \ + -DCMAKE_CXX_COMPILER=${{ inputs.compiler-executable }} \ + -DCMAKE_CXX_FLAGS="${{ inputs.compiler-cxxflags }}" \ + -DCMAKE_CXX_STANDARD=${{ inputs.cpp-version-number }} \ + -DCMAKE_BUILD_TYPE=${{ inputs.build-type-name }} \ + -DIRIS_TEST_ALLOY=${{ case(matrix.component == 'alloy', 'ON', 'OFF') }} \ + -DIRIS_TEST_X4=${{ case(matrix.component == 'x4', 'ON', 'OFF') }} \ + -DIRIS_CI=ON \ + -S . + + - name: Build Tests + run: | + cmake --build build --config ${{ inputs.build-type-name }} -j${{ env.IRIS_X4_BUILD_JOBS }} ${{ inputs.compiler-builder-additional-args }} + + - name: Test + env: + CLICOLOR_FORCE: 1 + working-directory: ${{ github.workspace }}/build/test + run: ctest --output-on-failure -C ${{ inputs.build-type-name }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 74c2f955e..841333af4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,9 +16,6 @@ concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true -env: - IRIS_X4_BUILD_JOBS: 4 - jobs: changes: runs-on: ubuntu-latest @@ -58,34 +55,32 @@ jobs: console.log('result: ', result); return result; - prepare-deps: - name: "[${{ matrix.cpp_version.name }}] deps for ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" + build: + name: "[${{ matrix.cpp_version.name }}] ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" needs: changes if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} - runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} - strategy: fail-fast: false matrix: - os: &os-matrix + os: - name: ubuntu version: 24.04 - name: windows version: 2022 - build_type: &build-type-matrix + build_type: - name: Debug lowercase: debug - name: Release lowercase: release - cpp_version: &cpp-version-matrix + cpp_version: - name: C++23 number: 23 - name: C++26 number: 26 - compiler: &compiler-matrix + compiler: - name: GCC toolset: gcc version: 14 @@ -102,7 +97,7 @@ jobs: builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl - exclude: &exclude-matrix + exclude: - os: name: windows compiler: @@ -116,152 +111,16 @@ jobs: compiler: name: MSVC - steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - - name: Setup Toolchain - id: setup - uses: ./.github/actions/setup - with: - os-name: ${{ matrix.os.name }} - os-version: ${{ matrix.os.version }} - compiler-toolset: ${{ matrix.compiler.toolset }} - compiler-version: ${{ matrix.compiler.version }} - compiler-executable: ${{ matrix.compiler.executable }} - cpp-version-name: ${{ matrix.cpp_version.name }} - build-type-name: ${{ matrix.build_type.name }} - - - name: Cache CMake Dependencies (restore) - id: cache-deps - uses: actions/cache/restore@v4 - with: - key: ${{ steps.setup.outputs.deps-cache-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp - - # Adapt CMP0168; enable caching in CI - # https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_FULLY_DISCONNECTED - - name: Setup Cached CMake Dependencies - id: deps-info - shell: bash - run: | - if [ "${{ steps.cache-deps.outputs.cache-hit }}" = "true" ]; then - echo "IRIS_X4_CMAKE_ARGS=-DFETCHCONTENT_FULLY_DISCONNECTED=ON" >> "$GITHUB_OUTPUT" - else - echo "IRIS_X4_CMAKE_ARGS=" >> "$GITHUB_OUTPUT" - fi - - - name: Configure - shell: bash - run: | - set -xe - cmake ${{ steps.deps-info.outputs.IRIS_X4_CMAKE_ARGS }} -B build \ - -DCMAKE_CXX_COMPILER=${{ matrix.compiler.executable }} \ - -DCMAKE_CXX_FLAGS="${{ matrix.compiler.cxxflags }}" \ - -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version.number }} \ - -DCMAKE_BUILD_TYPE=${{ matrix.build_type.name }} \ - -DIRIS_TEST_ALLOY=OFF \ - -DIRIS_TEST_X4=OFF \ - -DIRIS_CI=ON \ - -S . - - - name: Check Deps build time stamp (pre-build) - id: pre-build-check - shell: bash - run: | - if [ -e build/.iris_deps_build_stamp ]; then - echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT - else - echo "deps-timestamp=0" >> $GITHUB_OUTPUT - fi - - - name: Build Deps - run: | - cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target iris_deps_build_check ${{ matrix.compiler.builder_additional_args }} - - - name: Check Deps build time stamp (post-build) - id: post-build-check - shell: bash - run: | - echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT - - - name: Cache CMake Dependencies (save) - if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp - uses: actions/cache/save@v4 - with: - key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp - - build: - name: "[${{ matrix.cpp_version.name }}] ${{ matrix.components }} | ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" - - needs: [changes, prepare-deps] - if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} - - runs-on: ${{ matrix.os.name }}-${{ matrix.os.version }} - - strategy: - fail-fast: false - - matrix: - os: *os-matrix - build_type: *build-type-matrix - cpp_version: *cpp-version-matrix - compiler: *compiler-matrix - components: ${{ fromJSON(needs.changes.outputs.components) }} - exclude: *exclude-matrix - - steps: - - uses: actions/checkout@v5 - with: - submodules: recursive - - - name: Setup Toolchain - id: setup - uses: ./.github/actions/setup - with: - os-name: ${{ matrix.os.name }} - os-version: ${{ matrix.os.version }} - compiler-toolset: ${{ matrix.compiler.toolset }} - compiler-version: ${{ matrix.compiler.version }} - compiler-executable: ${{ matrix.compiler.executable }} - cpp-version-name: ${{ matrix.cpp_version.name }} - build-type-name: ${{ matrix.build_type.name }} - - - name: Cache CMake Dependencies (restore) - id: cache-deps - uses: actions/cache/restore@v4 - with: - key: ${{ steps.setup.outputs.deps-cache-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp - - - name: Configure - shell: bash - run: | - set -xe - cmake -DFETCHCONTENT_FULLY_DISCONNECTED=ON -B build \ - -DCMAKE_CXX_COMPILER=${{ matrix.compiler.executable }} \ - -DCMAKE_CXX_FLAGS="${{ matrix.compiler.cxxflags }}" \ - -DCMAKE_CXX_STANDARD=${{ matrix.cpp_version.number }} \ - -DCMAKE_BUILD_TYPE=${{ matrix.build_type.name }} \ - -DIRIS_TEST_ALLOY=${{ case(matrix.components == 'alloy', 'ON', 'OFF') }} \ - -DIRIS_TEST_X4=${{ case(matrix.components == 'x4', 'ON', 'OFF') }} \ - -DIRIS_CI=ON \ - -S . - - - name: Build Tests - run: | - cmake --build build --config ${{ matrix.build_type.name }} -j${{ env.IRIS_X4_BUILD_JOBS }} ${{ matrix.compiler.builder_additional_args }} - - - name: Test - env: - CLICOLOR_FORCE: 1 - working-directory: ${{ github.workspace }}/build/test - run: ctest --output-on-failure -C ${{ matrix.build_type.name }} + uses: ./.github/workflows/build.yml + with: + os-name: ${{ matrix.os.name }} + os-version: ${{ matrix.os.version }} + build-type-name: ${{ matrix.build_type.name }} + cpp-version-name: ${{ matrix.cpp_version.name }} + cpp-version-number: ${{ matrix.cpp_version.number }} + compiler-toolset: ${{ matrix.compiler.toolset }} + compiler-version: ${{ matrix.compiler.version }} + compiler-executable: ${{ matrix.compiler.executable }} + compiler-cxxflags: ${{ matrix.compiler.cxxflags }} + compiler-builder-additional-args: ${{ matrix.compiler.builder_additional_args }} + components: ${{ needs.changes.outputs.components }} From 91f0a0d844faaeab701ef120b7fc17e4b5dd3c8a Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 07:56:11 +0900 Subject: [PATCH 11/31] Test windows-2025-vs2026 --- .github/workflows/ci.yml | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 841333af4..2bcbe6765 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,10 +66,12 @@ jobs: matrix: os: - - name: ubuntu - version: 24.04 +# - name: ubuntu +# version: 24.04 - name: windows version: 2022 + - name: windows + version: 2025-vs2026 build_type: - name: Debug lowercase: debug @@ -81,16 +83,16 @@ jobs: - name: C++26 number: 26 compiler: - - name: GCC - toolset: gcc - version: 14 - executable: g++-14 - cxxflags: -fdiagnostics-color=always - - name: Clang - toolset: clang - version: 21 - executable: clang++-21 - cxxflags: -stdlib=libc++ -fcolor-diagnostics +# - name: GCC +# toolset: gcc +# version: 14 +# executable: g++-14 +# cxxflags: -fdiagnostics-color=always +# - name: Clang +# toolset: clang +# version: 21 +# executable: clang++-21 +# cxxflags: -stdlib=libc++ -fcolor-diagnostics - name: MSVC toolset: msvc version: 2022 From fa0d36d40510b39a108efc6ddbe62c175667942e Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:08:34 +0900 Subject: [PATCH 12/31] Use toolset arg with windows setup --- .github/actions/setup/action.yml | 5 ++++ .github/workflows/build.yml | 5 ++++ .github/workflows/ci.yml | 48 +++++++++++++++++++------------- 3 files changed, 38 insertions(+), 20 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index d5fc97f7d..267159fe6 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -17,6 +17,10 @@ inputs: required: true compiler-executable: required: true + compiler-toolset-version: + required: false + type: string + default: '' cpp-version-name: required: true build-type-name: @@ -60,6 +64,7 @@ runs: if: inputs.os-name == 'windows' with: arch: x64 + toolset: ${{ inputs.compiler-toolset-version }} - name: Fetch Environment Info id: env-info diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3657342dc..aa51f279c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,6 +36,10 @@ on: required: false type: string default: '' + compiler-toolset-version: + required: false + type: string + default: '' compiler-builder-additional-args: required: false type: string @@ -66,6 +70,7 @@ jobs: compiler-toolset: ${{ inputs.compiler-toolset }} compiler-version: ${{ inputs.compiler-version }} compiler-executable: ${{ inputs.compiler-executable }} + compiler-toolset-version: ${{ inputs.compiler-toolset-version }} cpp-version-name: ${{ inputs.cpp-version-name }} build-type-name: ${{ inputs.build-type-name }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2bcbe6765..1de48aaba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,20 +68,20 @@ jobs: os: # - name: ubuntu # version: 24.04 - - name: windows - version: 2022 +# - name: windows +# version: 2022 - name: windows version: 2025-vs2026 build_type: - name: Debug lowercase: debug - - name: Release - lowercase: release +# - name: Release +# lowercase: release cpp_version: - name: C++23 number: 23 - - name: C++26 - number: 26 +# - name: C++26 +# number: 26 compiler: # - name: GCC # toolset: gcc @@ -93,25 +93,32 @@ jobs: # version: 21 # executable: clang++-21 # cxxflags: -stdlib=libc++ -fcolor-diagnostics +# - name: MSVC +# toolset: msvc +# version: 2022 +# toolset_version: 14.44 +# builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" +# executable: cl - name: MSVC toolset: msvc - version: 2022 + version: 2026 + toolset_version: 14.50 builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl - exclude: - - os: - name: windows - compiler: - name: GCC - - os: - name: windows - compiler: - name: Clang - - os: - name: ubuntu - compiler: - name: MSVC +# exclude: +# - os: +# name: windows +# compiler: +# name: GCC +# - os: +# name: windows +# compiler: +# name: Clang +# - os: +# name: ubuntu +# compiler: +# name: MSVC uses: ./.github/workflows/build.yml with: @@ -124,5 +131,6 @@ jobs: compiler-version: ${{ matrix.compiler.version }} compiler-executable: ${{ matrix.compiler.executable }} compiler-cxxflags: ${{ matrix.compiler.cxxflags }} + compiler-toolset-version: ${{ matrix.compiler.toolset_version }} compiler-builder-additional-args: ${{ matrix.compiler.builder_additional_args }} components: ${{ needs.changes.outputs.components }} From ee252078cf7385aec7b6649531a066d157629bd4 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:20:22 +0900 Subject: [PATCH 13/31] Update iris --- modules/iris | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/iris b/modules/iris index 416b3715d..e4adc37cc 160000 --- a/modules/iris +++ b/modules/iris @@ -1 +1 @@ -Subproject commit 416b3715d28ab2c9a17370c8d6aecca7b58e635a +Subproject commit e4adc37ccf1dea9d01b3fcd0f9172795baf71957 From a1e56ee76319448946a02117e5c7bc37ce2ff0d2 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:27:50 +0900 Subject: [PATCH 14/31] Grant write permission --- .github/workflows/ci.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1de48aaba..e678221d3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,9 @@ name: CI +permissions: + actions: write + on: pull_request: push: From 88404bb3281359ee2151ed257466377588bc2fd0 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:29:41 +0900 Subject: [PATCH 15/31] Fix please? --- .github/workflows/build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aa51f279c..88bc09ca5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,9 @@ name: Build +permissions: + actions: write + on: workflow_call: inputs: From 2e6b5691f6a443f68251a1bfd22044653b1f46cd Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:35:17 +0900 Subject: [PATCH 16/31] Jonny Depp 3 --- .github/actions/setup/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 267159fe6..13858e84c 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -84,4 +84,4 @@ runs: esac echo "COMPILER_FULL_VERSION=$COMPILER_FULL_VERSION" echo "compiler-full-version=$COMPILER_FULL_VERSION" >> "$GITHUB_OUTPUT" - echo "deps-cache-key=deps-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" + echo "deps-cache-key=deps3-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" From 6f648ad5538a189131888ad31f86349cb3fc822c Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:40:45 +0900 Subject: [PATCH 17/31] Rename --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e678221d3..1db68b158 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -96,13 +96,13 @@ jobs: # version: 21 # executable: clang++-21 # cxxflags: -stdlib=libc++ -fcolor-diagnostics -# - name: MSVC +# - name: MSVC2022 # toolset: msvc # version: 2022 # toolset_version: 14.44 # builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" # executable: cl - - name: MSVC + - name: MSVC2026 toolset: msvc version: 2026 toolset_version: 14.50 From 7e81974ec1700f29bbb1602c96c5846bea24a96e Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:46:32 +0900 Subject: [PATCH 18/31] Remove timestamp file to test --- .github/workflows/build.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88bc09ca5..9044df907 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,9 +137,7 @@ jobs: uses: actions/cache/save@v4 with: key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/_deps build: needs: prepare-deps @@ -174,9 +172,7 @@ jobs: uses: actions/cache/restore@v4 with: key: ${{ steps.setup.outputs.deps-cache-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/_deps - name: Configure shell: bash From 20ed902b884cbbe9fa4b13b15cd54d9bcd795122 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:55:02 +0900 Subject: [PATCH 19/31] Revert "Remove timestamp file to test" This reverts commit 7e81974ec1700f29bbb1602c96c5846bea24a96e. --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9044df907..88bc09ca5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,7 +137,9 @@ jobs: uses: actions/cache/save@v4 with: key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: ${{ github.workspace }}/build/_deps + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp build: needs: prepare-deps @@ -172,7 +174,9 @@ jobs: uses: actions/cache/restore@v4 with: key: ${{ steps.setup.outputs.deps-cache-key }} - path: ${{ github.workspace }}/build/_deps + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp - name: Configure shell: bash From 6cb2fe8d1e67801aca6d9d9418cdef17717bdea1 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:55:36 +0900 Subject: [PATCH 20/31] Update iris --- modules/iris | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/iris b/modules/iris index e4adc37cc..d12d2bbd3 160000 --- a/modules/iris +++ b/modules/iris @@ -1 +1 @@ -Subproject commit e4adc37ccf1dea9d01b3fcd0f9172795baf71957 +Subproject commit d12d2bbd3646974dedcc9440531cf5f7203a8873 From 8766e08eec39a30209c6a4db85915f94db3a8be4 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 08:58:30 +0900 Subject: [PATCH 21/31] Cache only timestamp --- .github/workflows/build.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 88bc09ca5..f4c25984b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,9 +137,7 @@ jobs: uses: actions/cache/save@v4 with: key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/.iris_deps_build_stamp build: needs: prepare-deps @@ -174,9 +172,7 @@ jobs: uses: actions/cache/restore@v4 with: key: ${{ steps.setup.outputs.deps-cache-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/.iris_deps_build_stamp - name: Configure shell: bash From bf6e99ccafe0e02050c8c6d852c4364fadae7dec Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 09:06:56 +0900 Subject: [PATCH 22/31] Set enableCrossOsArchive --- .github/workflows/build.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4c25984b..85b8271bd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -81,6 +81,7 @@ jobs: id: cache-deps uses: actions/cache/restore@v4 with: + enableCrossOsArchive: true key: ${{ steps.setup.outputs.deps-cache-key }} path: | ${{ github.workspace }}/build/_deps @@ -136,8 +137,11 @@ jobs: if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp uses: actions/cache/save@v4 with: + enableCrossOsArchive: true key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: ${{ github.workspace }}/build/.iris_deps_build_stamp + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp build: needs: prepare-deps @@ -172,7 +176,9 @@ jobs: uses: actions/cache/restore@v4 with: key: ${{ steps.setup.outputs.deps-cache-key }} - path: ${{ github.workspace }}/build/.iris_deps_build_stamp + path: | + ${{ github.workspace }}/build/_deps + ${{ github.workspace }}/build/.iris_deps_build_stamp - name: Configure shell: bash From 216da73b8a9a25a978fc3ff23aa3eb5046200495 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 09:21:34 +0900 Subject: [PATCH 23/31] Put timestamp file under _deps --- .github/workflows/build.yml | 14 +++++--------- modules/iris | 2 +- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 85b8271bd..819c22616 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -83,9 +83,7 @@ jobs: with: enableCrossOsArchive: true key: ${{ steps.setup.outputs.deps-cache-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/_deps # Adapt CMP0168; enable caching in CI # https://cmake.org/cmake/help/latest/module/FetchContent.html#variable:FETCHCONTENT_FULLY_DISCONNECTED @@ -117,8 +115,8 @@ jobs: id: pre-build-check shell: bash run: | - if [ -e build/.iris_deps_build_stamp ]; then - echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT + if [ -e build/_deps/.iris_deps_build_stamp ]; then + echo "deps-timestamp=$(stat -c %Y build/_deps/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT else echo "deps-timestamp=0" >> $GITHUB_OUTPUT fi @@ -131,7 +129,7 @@ jobs: id: post-build-check shell: bash run: | - echo "deps-timestamp=$(stat -c %Y build/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT + echo "deps-timestamp=$(stat -c %Y build/_deps/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT - name: Cache CMake Dependencies (save) if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp @@ -139,9 +137,7 @@ jobs: with: enableCrossOsArchive: true key: ${{ steps.cache-deps.outputs.cache-primary-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/_deps build: needs: prepare-deps diff --git a/modules/iris b/modules/iris index d12d2bbd3..4b7a8c508 160000 --- a/modules/iris +++ b/modules/iris @@ -1 +1 @@ -Subproject commit d12d2bbd3646974dedcc9440531cf5f7203a8873 +Subproject commit 4b7a8c508242a9bc9b4be9edc8303a8ed5b48e3e From 432b21656a3c8c4da29d8dbd616d5c2bbdecfa99 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 09:46:58 +0900 Subject: [PATCH 24/31] Revert timestamp related code --- .github/workflows/build.yml | 26 ++------------------------ modules/iris | 2 +- 2 files changed, 3 insertions(+), 25 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 819c22616..e2c40dc70 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -111,28 +111,8 @@ jobs: -DIRIS_CI=ON \ -S . - - name: Check Deps build time stamp (pre-build) - id: pre-build-check - shell: bash - run: | - if [ -e build/_deps/.iris_deps_build_stamp ]; then - echo "deps-timestamp=$(stat -c %Y build/_deps/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT - else - echo "deps-timestamp=0" >> $GITHUB_OUTPUT - fi - - - name: Build Deps - run: | - cmake --build build --config ${{ inputs.build-type-name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target iris_deps_build_check ${{ inputs.compiler-builder-additional-args }} - - - name: Check Deps build time stamp (post-build) - id: post-build-check - shell: bash - run: | - echo "deps-timestamp=$(stat -c %Y build/_deps/.iris_deps_build_stamp)" >> $GITHUB_OUTPUT - - name: Cache CMake Dependencies (save) - if: steps.cache-deps.outputs.cache-hit != 'true' || steps.pre-build-check.outputs.deps-timestamp != steps.post-build-check.outputs.deps-timestamp + if: steps.cache-deps.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: enableCrossOsArchive: true @@ -172,9 +152,7 @@ jobs: uses: actions/cache/restore@v4 with: key: ${{ steps.setup.outputs.deps-cache-key }} - path: | - ${{ github.workspace }}/build/_deps - ${{ github.workspace }}/build/.iris_deps_build_stamp + path: ${{ github.workspace }}/build/_deps - name: Configure shell: bash diff --git a/modules/iris b/modules/iris index 4b7a8c508..2e0e691fa 160000 --- a/modules/iris +++ b/modules/iris @@ -1 +1 @@ -Subproject commit 4b7a8c508242a9bc9b4be9edc8303a8ed5b48e3e +Subproject commit 2e0e691fa8ec4de4c82eeb8c9f2338c14dbf56b5 From 9d974bb80afd79a16dddc3e2a9b7343c14dcf94d Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 09:47:54 +0900 Subject: [PATCH 25/31] Revert some code --- .github/workflows/build.yml | 5 ----- .github/workflows/ci.yml | 3 --- 2 files changed, 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e2c40dc70..f42e8d546 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,9 +5,6 @@ name: Build -permissions: - actions: write - on: workflow_call: inputs: @@ -81,7 +78,6 @@ jobs: id: cache-deps uses: actions/cache/restore@v4 with: - enableCrossOsArchive: true key: ${{ steps.setup.outputs.deps-cache-key }} path: ${{ github.workspace }}/build/_deps @@ -115,7 +111,6 @@ jobs: if: steps.cache-deps.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: - enableCrossOsArchive: true key: ${{ steps.cache-deps.outputs.cache-primary-key }} path: ${{ github.workspace }}/build/_deps diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1db68b158..abd6fece1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,9 +6,6 @@ name: CI -permissions: - actions: write - on: pull_request: push: From 244d903ba09cc34646ae8f83d55ee524f798c2f0 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 09:54:21 +0900 Subject: [PATCH 26/31] Restore catch2 build --- .github/workflows/build.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f42e8d546..5f84c422a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -107,6 +107,10 @@ jobs: -DIRIS_CI=ON \ -S . + - name: Build Deps + run: | + cmake --build build --config ${{ inputs.build-type-name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target Catch2WithMain ${{ inputs.compiler-builder-additional-args }} + - name: Cache CMake Dependencies (save) if: steps.cache-deps.outputs.cache-hit != 'true' uses: actions/cache/save@v4 From 6ece85da1728c4c528a9fb5e0d739ee30bce3f25 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 10:35:48 +0900 Subject: [PATCH 27/31] Restore matrix --- .github/workflows/ci.yml | 76 ++++++++++++++++++++-------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index abd6fece1..c4aa82a98 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,59 +66,59 @@ jobs: matrix: os: -# - name: ubuntu -# version: 24.04 -# - name: windows -# version: 2022 + - name: ubuntu + version: 24.04 + - name: windows + version: 2022 - name: windows version: 2025-vs2026 build_type: - name: Debug lowercase: debug -# - name: Release -# lowercase: release + - name: Release + lowercase: release cpp_version: - name: C++23 number: 23 -# - name: C++26 -# number: 26 + - name: C++26 + number: 26 compiler: -# - name: GCC -# toolset: gcc -# version: 14 -# executable: g++-14 -# cxxflags: -fdiagnostics-color=always -# - name: Clang -# toolset: clang -# version: 21 -# executable: clang++-21 -# cxxflags: -stdlib=libc++ -fcolor-diagnostics -# - name: MSVC2022 -# toolset: msvc -# version: 2022 -# toolset_version: 14.44 -# builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" -# executable: cl - - name: MSVC2026 + - name: GCC + toolset: gcc + version: 14 + executable: g++-14 + cxxflags: -fdiagnostics-color=always + - name: Clang + toolset: clang + version: 21 + executable: clang++-21 + cxxflags: -stdlib=libc++ -fcolor-diagnostics + - name: MSVC + toolset: msvc + version: 2022 + toolset_version: 14.44 + builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" + executable: cl + - name: MSVC toolset: msvc version: 2026 toolset_version: 14.50 builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl -# exclude: -# - os: -# name: windows -# compiler: -# name: GCC -# - os: -# name: windows -# compiler: -# name: Clang -# - os: -# name: ubuntu -# compiler: -# name: MSVC + exclude: + - os: + name: windows + compiler: + name: GCC + - os: + name: windows + compiler: + name: Clang + - os: + name: ubuntu + compiler: + name: MSVC uses: ./.github/workflows/build.yml with: From 31adfc76c7dceaa21047181010e97f70d72a3803 Mon Sep 17 00:00:00 2001 From: yaito3014 Date: Tue, 17 Feb 2026 10:38:09 +0900 Subject: [PATCH 28/31] Drop windows 2022 --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4aa82a98..6d1eab1cf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -68,8 +68,6 @@ jobs: os: - name: ubuntu version: 24.04 - - name: windows - version: 2022 - name: windows version: 2025-vs2026 build_type: From c1c4c697ae4ff12ab9b6612e31ad55133cafdfa5 Mon Sep 17 00:00:00 2001 From: Nana Sakisaka <1901813+saki7@users.noreply.github.com> Date: Tue, 17 Feb 2026 21:00:42 +0900 Subject: [PATCH 29/31] Explicitly specify cmake generator for VS 2022 --- .github/actions/setup/action.yml | 7 ++++- .github/workflows/build.yml | 14 ++++++++- .github/workflows/ci.yml | 50 ++++++++++++++++++++++---------- 3 files changed, 53 insertions(+), 18 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 13858e84c..b48625aa4 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -21,6 +21,10 @@ inputs: required: false type: string default: '' + vs-path: + required: false + type: string + default: '' cpp-version-name: required: true build-type-name: @@ -64,6 +68,7 @@ runs: if: inputs.os-name == 'windows' with: arch: x64 + vs-path: ${{ inputs.vs-path }} toolset: ${{ inputs.compiler-toolset-version }} - name: Fetch Environment Info @@ -84,4 +89,4 @@ runs: esac echo "COMPILER_FULL_VERSION=$COMPILER_FULL_VERSION" echo "compiler-full-version=$COMPILER_FULL_VERSION" >> "$GITHUB_OUTPUT" - echo "deps-cache-key=deps3-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" + echo "deps-cache-key=deps-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5f84c422a..c4d33d379 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,14 @@ on: required: false type: string default: '' + vs-path: + required: false + type: string + default: '' + cmake-config-additional-args: + required: false + type: string + default: '' compiler-builder-additional-args: required: false type: string @@ -71,6 +79,7 @@ jobs: compiler-version: ${{ inputs.compiler-version }} compiler-executable: ${{ inputs.compiler-executable }} compiler-toolset-version: ${{ inputs.compiler-toolset-version }} + vs-path: ${{ inputs.vs-path }} cpp-version-name: ${{ inputs.cpp-version-name }} build-type-name: ${{ inputs.build-type-name }} @@ -98,6 +107,7 @@ jobs: run: | set -xe cmake ${{ steps.deps-info.outputs.IRIS_X4_CMAKE_ARGS }} -B build \ + ${{ inputs.cmake-config-additional-args }} \ -DCMAKE_CXX_COMPILER=${{ inputs.compiler-executable }} \ -DCMAKE_CXX_FLAGS="${{ inputs.compiler-cxxflags }}" \ -DCMAKE_CXX_STANDARD=${{ inputs.cpp-version-number }} \ @@ -112,7 +122,9 @@ jobs: cmake --build build --config ${{ inputs.build-type-name }} -j${{ env.IRIS_X4_BUILD_JOBS }} --target Catch2WithMain ${{ inputs.compiler-builder-additional-args }} - name: Cache CMake Dependencies (save) - if: steps.cache-deps.outputs.cache-hit != 'true' + # Due to some bogus "Unable to reserve cache with key" error, we *always* save the cache for now. + # See this page for the rate limit: https://docs.github.com/en/actions/reference/limits#existing-system-limits + # if: steps.cache-deps.outputs.cache-hit != 'true' uses: actions/cache/save@v4 with: key: ${{ steps.cache-deps.outputs.cache-primary-key }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6d1eab1cf..f8b735104 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,45 +66,61 @@ jobs: matrix: os: - - name: ubuntu - version: 24.04 + # - name: ubuntu + # version: 24.04 + - name: windows + version: 2022 - name: windows version: 2025-vs2026 build_type: - name: Debug lowercase: debug - - name: Release - lowercase: release + # - name: Release + # lowercase: release cpp_version: - - name: C++23 - number: 23 + # - name: C++23 + # number: 23 - name: C++26 number: 26 compiler: - - name: GCC - toolset: gcc - version: 14 - executable: g++-14 - cxxflags: -fdiagnostics-color=always - - name: Clang - toolset: clang - version: 21 - executable: clang++-21 - cxxflags: -stdlib=libc++ -fcolor-diagnostics + # - name: GCC + # toolset: gcc + # version: 14 + # executable: g++-14 + # cxxflags: -fdiagnostics-color=always + # - name: Clang + # toolset: clang + # version: 21 + # executable: clang++-21 + # cxxflags: -stdlib=libc++ -fcolor-diagnostics - name: MSVC toolset: msvc version: 2022 toolset_version: 14.44 + vs-path: C:\Program Files\Microsoft Visual Studio\2022\Enterprise + cmake_config_additional_args: -G "Visual Studio 17 2022" builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl - name: MSVC toolset: msvc version: 2026 toolset_version: 14.50 + vs-path: C:\Program Files\Microsoft Visual Studio\18\Enterprise + cmake_config_additional_args: -G "Visual Studio 18 2026" builder_additional_args: -- "-consoleLoggerParameters:ForceConsoleColor" executable: cl exclude: + - os: + name: windows + version: 2022 + compiler: + version: 2026 + - os: + name: windows + version: 2025-vs2026 + compiler: + version: 2022 - os: name: windows compiler: @@ -130,5 +146,7 @@ jobs: compiler-executable: ${{ matrix.compiler.executable }} compiler-cxxflags: ${{ matrix.compiler.cxxflags }} compiler-toolset-version: ${{ matrix.compiler.toolset_version }} + vs-path: ${{ matrix.compiler.vs-path }} + cmake-config-additional-args: ${{ matrix.compiler.cmake_config_additional_args }} compiler-builder-additional-args: ${{ matrix.compiler.builder_additional_args }} components: ${{ needs.changes.outputs.components }} From 9e13f335551642355ea5c404d0b08872164788d6 Mon Sep 17 00:00:00 2001 From: Nana Sakisaka <1901813+saki7@users.noreply.github.com> Date: Tue, 17 Feb 2026 22:12:35 +0900 Subject: [PATCH 30/31] Make job names cleaner --- .github/workflows/build.yml | 3 ++- .github/workflows/ci.yml | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c4d33d379..5e864ccca 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,6 +62,7 @@ env: jobs: prepare-deps: + name: "Prepare Dependencies" runs-on: ${{ inputs.os-name }}-${{ inputs.os-version }} steps: @@ -131,8 +132,8 @@ jobs: path: ${{ github.workspace }}/build/_deps build: + name: ${{ matrix.component }} needs: prepare-deps - runs-on: ${{ inputs.os-name }}-${{ inputs.os-version }} strategy: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f8b735104..300fe9d66 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,7 +56,7 @@ jobs: return result; build: - name: "[${{ matrix.cpp_version.name }}] ${{ matrix.compiler.toolset }}-${{ matrix.compiler.version }} (${{ matrix.build_type.name }}) @ ${{ matrix.os.name }}-${{ matrix.os.version }}" + name: "[${{ matrix.cpp_version.name }}] ${{ matrix.compiler.name }} ${{ matrix.compiler.version }} (${{ matrix.build_type.name }})" needs: changes if: ${{ needs.changes.outputs.components != '[]' && needs.changes.outputs.components != '' }} @@ -68,8 +68,8 @@ jobs: os: # - name: ubuntu # version: 24.04 - - name: windows - version: 2022 + # - name: windows + # version: 2022 - name: windows version: 2025-vs2026 build_type: From b156fe47f79352cf4f391faf47e9219b49a9ce76 Mon Sep 17 00:00:00 2001 From: Nana Sakisaka <1901813+saki7@users.noreply.github.com> Date: Tue, 17 Feb 2026 22:22:23 +0900 Subject: [PATCH 31/31] Re-enable all matrix --- .github/actions/setup/action.yml | 2 +- .github/workflows/build.yml | 2 +- .github/workflows/ci.yml | 43 +++++++++++++++++--------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index b48625aa4..451bde891 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -89,4 +89,4 @@ runs: esac echo "COMPILER_FULL_VERSION=$COMPILER_FULL_VERSION" echo "compiler-full-version=$COMPILER_FULL_VERSION" >> "$GITHUB_OUTPUT" - echo "deps-cache-key=deps-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" + echo "deps-cache-key=deps4-${{ inputs.os-name }}-${{ inputs.os-version }}-${{ inputs.compiler-toolset }}-${COMPILER_FULL_VERSION}-${{ inputs.cpp-version-name }}-${{ inputs.build-type-name }}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5e864ccca..1dc35bdb6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -62,7 +62,7 @@ env: jobs: prepare-deps: - name: "Prepare Dependencies" + name: "Dependencies" runs-on: ${{ inputs.os-name }}-${{ inputs.os-version }} steps: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 300fe9d66..977419dc0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,9 @@ concurrency: jobs: changes: + name: "Check Changes" runs-on: ubuntu-latest + outputs: components: ${{ steps.processed.outputs.result }} steps: @@ -28,9 +30,10 @@ jobs: with: filters: | general: - - '.github/workflows/*.yml' - - 'CMakeLists.txt' + - '.github/workflows/**/*.yml' + - '.github/actions/**/*.yml' - 'modules/iris' + - 'CMakeLists.txt' - 'test/CMakeLists.txt' - 'scripts/generate_tuple_members.sh' - 'scripts/generate_tuple_members.bat' @@ -66,33 +69,33 @@ jobs: matrix: os: - # - name: ubuntu - # version: 24.04 - # - name: windows - # version: 2022 + - name: ubuntu + version: 24.04 + - name: windows + version: 2022 - name: windows version: 2025-vs2026 build_type: - name: Debug lowercase: debug - # - name: Release - # lowercase: release + - name: Release + lowercase: release cpp_version: - # - name: C++23 - # number: 23 + - name: C++23 + number: 23 - name: C++26 number: 26 compiler: - # - name: GCC - # toolset: gcc - # version: 14 - # executable: g++-14 - # cxxflags: -fdiagnostics-color=always - # - name: Clang - # toolset: clang - # version: 21 - # executable: clang++-21 - # cxxflags: -stdlib=libc++ -fcolor-diagnostics + - name: GCC + toolset: gcc + version: 14 + executable: g++-14 + cxxflags: -fdiagnostics-color=always + - name: Clang + toolset: clang + version: 21 + executable: clang++-21 + cxxflags: -stdlib=libc++ -fcolor-diagnostics - name: MSVC toolset: msvc version: 2022