Fix single element tuple like handling #342
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Copyright 2025-2026 Nana Sakisaka | |
| # Copyright 2026 The Iris Project Contributors | |
| # | |
| # Distributed under the Boost Software License, Version 1.0. | |
| # https://www.boost.org/LICENSE_1_0.txt | |
| name: CI | |
| permissions: | |
| id-token: write | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - "main" | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| changes: | |
| name: "Check Changes" | |
| runs-on: ubuntu-latest | |
| outputs: | |
| components: ${{ steps.processed.outputs.result }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dorny/paths-filter@v3 | |
| id: filter | |
| with: | |
| filters: | | |
| general: | |
| - '.github/workflows/**/*.yml' | |
| - '.github/actions/**/*.yml' | |
| - 'modules/iris' | |
| - 'CMakeLists.txt' | |
| - 'test/CMakeLists.txt' | |
| - 'scripts/generate_tuple_members.sh' | |
| - 'scripts/generate_tuple_members.bat' | |
| alloy: | |
| - 'include/iris/alloy/**/*' | |
| - 'test/alloy/**/*' | |
| x4: | |
| - 'include/iris/x4.hpp' | |
| - 'include/iris/x4/**/*' | |
| - 'test/x4/**/*' | |
| - uses: actions/github-script@v8 | |
| id: processed | |
| env: | |
| CHANGES: ${{ steps.filter.outputs.changes }} | |
| with: | |
| script: | | |
| const changes = JSON.parse(process.env.CHANGES); | |
| console.log('changes: ', changes); | |
| let result = []; | |
| if (changes.includes('general') || changes.includes('alloy')) result.push('alloy'); | |
| if (changes.includes('general') || changes.includes('alloy') || changes.includes('x4')) result.push('x4'); | |
| console.log('result: ', result); | |
| return result; | |
| build: | |
| 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 != '' }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - name: ubuntu | |
| version: 24.04 | |
| - name: windows | |
| version: 2022 | |
| - name: windows | |
| version: 2025-vs2026 | |
| build_type: | |
| - name: Debug | |
| lowercase: debug | |
| - name: Release | |
| lowercase: release | |
| cpp_version: | |
| - 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: 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: | |
| name: GCC | |
| - os: | |
| name: windows | |
| compiler: | |
| name: Clang | |
| - os: | |
| name: ubuntu | |
| compiler: | |
| name: MSVC | |
| uses: iris-cpp/iris/.github/workflows/build.yml@main | |
| 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-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 }} | |
| run-notifier: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: iris-cpp/cpp-warning-notifier@v0.7.0 | |
| with: | |
| IGNORE_NO_MARKER: true | |
| RUN_ID: ${{ github.run_id }} | |
| JOB_ID: ${{ job.check_run_id }} | |
| WORKER_URL: https://cpp-warning-notifier.iris-cpp.org | |
| STEP_REGEX: Build .+ | |
| JOB_REGEX: '\[C\+\+(?<cppVersion>\d+)\] (?<vendorName>.+) (?<vendorVersion>.+) \((?<config>.+)\) / (?<component>.+)' | |
| ROW_HEADERS: '["component", "vendorName", "vendorVersion", "config"]' | |
| COLUMN_HEADER: cppVersion |