CI: Set ccache path based on template parameter

Currently, the templated steps in Caches.yml rely on the environment
variable CCACHE_DIR being set to configure the ccache location. To
prepare for multiple ccache paths, do not rely on this environment
variable because only one ccache can use it at a time. Instead, pass
the path into the template as a parameter.
This commit is contained in:
Timothy Flynn 2021-09-21 06:42:35 -04:00 committed by Idan Horowitz
parent 5a2f41fff0
commit 4a4e614387
Notes: sideshowbarker 2024-07-18 03:35:20 +09:00
3 changed files with 21 additions and 9 deletions

View file

@ -4,6 +4,7 @@ parameters:
toolchain: 'gcc'
build_directory: ''
ccache_version: 1 # Increment this number if CI has trouble with ccache.
serenity_ccache_path: $(CCACHE_DIR)
with_unicode_caches: true
steps:
@ -30,8 +31,8 @@ steps:
key: '"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}" | "$(timestamp)"'
restoreKeys: |
"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}"
path: $(CCACHE_DIR)
displayName: 'Compiler Cache'
path: ${{ parameters.serenity_ccache_path }}
displayName: 'Serenity Compiler Cache'
- ${{ if eq(parameters.with_unicode_caches, true) }}:
- task: Cache@2
@ -47,6 +48,6 @@ steps:
displayName: 'UnicodeLocale Cache'
- script: |
ccache -M 5G
ccache -s
displayName: 'Configure ccache'
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -M 5G
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -s
displayName: 'Configure Serenity ccache'

View file

@ -7,7 +7,7 @@ jobs:
- job: 'Lagom_${{ parameters.os }}_${{ parameters.fuzzer }}'
variables:
- name: CCACHE_DIR
- name: SERENITY_CCACHE_DIR
value: $(Build.SourcesDirectory)/.ccache
- name: job_pool
@ -36,6 +36,7 @@ jobs:
arch: 'Lagom'
toolchain: '$(toolchain)'
build_directory: 'Meta/Lagom/Build'
serenity_ccache_path: '$(SERENITY_CCACHE_DIR)'
${{ if eq(parameters.fuzzer, 'Fuzz') }}:
with_unicode_caches: false
${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
@ -59,6 +60,8 @@ jobs:
..
displayName: 'Create Build Environment'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- ${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
- script: |
cmake -GNinja \
@ -77,11 +80,14 @@ jobs:
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build
env:
PATH: '$(PATH):$(Build.SourcesDirectory)/wabt-1.0.23/bin'
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- script: |
cmake --build .
displayName: 'Build'
workingDirectory: $(Build.SourcesDirectory)/Meta/Lagom/Build
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- ${{ if eq(parameters.fuzzer, 'NoFuzz') }}:
- script: |
@ -96,5 +102,5 @@ jobs:
UBSAN_OPTIONS: 'print_stacktrace=1:print_summary=1:halt_on_error=1'
- script: |
ccache -s
CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache -s
displayName: 'Cache Stats'

View file

@ -6,7 +6,7 @@ jobs:
timeoutInMinutes: 0 # Setting to 0 means the maximum allowed timeout is used.
variables:
- name: CCACHE_DIR
- name: SERENITY_CCACHE_DIR
value: $(Build.SourcesDirectory)/.ccache
pool:
@ -22,6 +22,7 @@ jobs:
arch: '${{ parameters.arch }}'
toolchain: 'clang'
build_directory: 'Build/${{ parameters.arch }}clang'
serenity_ccache_path: '$(SERENITY_CCACHE_DIR)'
- script: ./Toolchain/BuildClang.sh
displayName: Build Toolchain
@ -44,11 +45,15 @@ jobs:
-DCMAKE_CXX_COMPILER=g++-10
displayName: 'Create Build Environment'
workingDirectory: $(Build.SourcesDirectory)
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- script: |
cmake --build ./Build/superbuild
displayName: 'Build'
workingDirectory: $(Build.SourcesDirectory)
env:
CCACHE_DIR: '$(SERENITY_CCACHE_DIR)'
- script: |
ninja install && ninja image
@ -86,5 +91,5 @@ jobs:
condition: failed()
- script: |
ccache -s
CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache -s
displayName: 'Cache Stats'