mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
ci: include stdlib in compiler_id for cache keys
- compiler_id now includes stdlib (e.g. clang-14-libstdcxx) - Cache keys are self-documenting without redundant stdlib param - Actions still receive stdlib for Conan/CMake configuration - Added documentation explaining matrix key purposes
This commit is contained in:
2
.github/actions/xahau-ga-build/action.yml
vendored
2
.github/actions/xahau-ga-build/action.yml
vendored
@@ -21,7 +21,7 @@ inputs:
|
||||
required: false
|
||||
default: ''
|
||||
compiler-id:
|
||||
description: 'Unique identifier for compiler/version combination used for cache keys'
|
||||
description: 'Unique identifier including compiler/version/stdlib (e.g. clang-14-libstdcxx)'
|
||||
required: false
|
||||
default: ''
|
||||
cache_version:
|
||||
|
||||
11
.github/actions/xahau-ga-dependencies/action.yml
vendored
11
.github/actions/xahau-ga-dependencies/action.yml
vendored
@@ -10,7 +10,7 @@ inputs:
|
||||
required: false
|
||||
default: '.build'
|
||||
compiler-id:
|
||||
description: 'Unique identifier for compiler/version combination used for cache keys'
|
||||
description: 'Unique identifier including compiler/version/stdlib (e.g. clang-14-libstdcxx)'
|
||||
required: false
|
||||
default: ''
|
||||
cache_version:
|
||||
@@ -26,7 +26,7 @@ inputs:
|
||||
required: false
|
||||
default: 'dev'
|
||||
stdlib:
|
||||
description: 'C++ standard library - affects cache key'
|
||||
description: 'C++ standard library for Conan configuration (note: also in compiler-id)'
|
||||
required: true
|
||||
type: choice
|
||||
options:
|
||||
@@ -57,10 +57,11 @@ runs:
|
||||
path: |
|
||||
~/.conan
|
||||
~/.conan2
|
||||
key: ${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.stdlib }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-${{ inputs.configuration }}
|
||||
# Note: compiler-id includes stdlib by convention (e.g. clang-14-libstdcxx)
|
||||
key: ${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-${{ inputs.configuration }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.stdlib }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-
|
||||
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ inputs.stdlib }}-
|
||||
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-${{ hashFiles('**/conanfile.txt', '**/conanfile.py') }}-
|
||||
${{ runner.os }}-conan-v${{ inputs.cache_version }}-${{ inputs.compiler-id }}-
|
||||
|
||||
- name: Export custom recipes
|
||||
shell: bash
|
||||
|
||||
21
.github/workflows/xahau-ga-nix.yml
vendored
21
.github/workflows/xahau-ga-nix.yml
vendored
@@ -18,26 +18,31 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
compiler: [clang]
|
||||
# Matrix configuration:
|
||||
# - compiler_id: Full identifier with stdlib (e.g. clang-14-libstdcxx) for cache keys
|
||||
# - compiler: Base compiler family (gcc/clang) for Conan settings
|
||||
# - cc/cxx: Actual compiler executables
|
||||
# - compiler_version: Version number for Conan
|
||||
# - stdlib: Standard library (libstdcxx/libcxx) for Conan/CMake configuration
|
||||
compiler_id: [clang-14-libstdcxx, clang-16-libstdcxx] # Temporarily disabled: gcc-13-libstdcxx
|
||||
configuration: [Debug]
|
||||
include:
|
||||
# Temporarily disabled for clang testing
|
||||
# - compiler: gcc
|
||||
# - compiler_id: gcc-13-libstdcxx
|
||||
# compiler: gcc
|
||||
# cc: gcc-13
|
||||
# cxx: g++-13
|
||||
# compiler_id: gcc-13
|
||||
# compiler_version: 13
|
||||
# stdlib: libstdcxx
|
||||
- compiler: clang
|
||||
- compiler_id: clang-14-libstdcxx
|
||||
compiler: clang
|
||||
cc: clang-14
|
||||
cxx: clang++-14
|
||||
compiler_id: clang-14
|
||||
compiler_version: 14
|
||||
stdlib: libstdcxx # Required for clang-14 compatibility
|
||||
- compiler: clang
|
||||
- compiler_id: clang-16-libstdcxx
|
||||
compiler: clang
|
||||
cc: clang-16
|
||||
cxx: clang++-16
|
||||
compiler_id: clang-16
|
||||
compiler_version: 16
|
||||
stdlib: libstdcxx # Workaround for missing lexicographical_compare_three_way in libc++
|
||||
env:
|
||||
|
||||
Reference in New Issue
Block a user