diff options
author | Timothy Flynn <trflynn89@pm.me> | 2021-09-21 06:50:41 -0400 |
---|---|---|
committer | Idan Horowitz <idan.horowitz@gmail.com> | 2021-09-21 15:39:17 +0300 |
commit | 8084957e8864648269c34d3c7cf41eeb24a4309b (patch) | |
tree | 3a5eea5a6ab6b31d14aeb69a1839fce14e15496d /Meta/Azure | |
parent | 4a4e614387beead8c163189f0376e8bc480920ee (diff) | |
download | serenity-8084957e8864648269c34d3c7cf41eeb24a4309b.zip |
CI: Create a secondary ccache for the Clang toolchain build
We bust the prebuilt cache when any header in e.g. LibC changes. Doing a
full toolchain rebuild probably isn't necessary, so this adds a separate
ccache to speed up toolchain builds.
Diffstat (limited to 'Meta/Azure')
-rw-r--r-- | Meta/Azure/Caches.yml | 19 | ||||
-rw-r--r-- | Meta/Azure/Serenity.yml | 12 |
2 files changed, 28 insertions, 3 deletions
diff --git a/Meta/Azure/Caches.yml b/Meta/Azure/Caches.yml index 1351a895ce..1971b2054d 100644 --- a/Meta/Azure/Caches.yml +++ b/Meta/Azure/Caches.yml @@ -5,6 +5,8 @@ parameters: build_directory: '' ccache_version: 1 # Increment this number if CI has trouble with ccache. serenity_ccache_path: $(CCACHE_DIR) + toolchain_ccache_path: $(CCACHE_DIR) + toolchain_ccache_size: $(CCACHE_MAXSIZE) with_unicode_caches: true steps: @@ -18,13 +20,26 @@ steps: inputs: key: '"toolchain" | "${{ parameters.arch }}" | Toolchain/BuildClang.sh | Toolchain/Patches/*[!gcc].patch | Userland/Libraries/LibC/**/*.h | Userland/Libraries/LibPthread/**/*.h' path: $(Build.SourcesDirectory)/Toolchain/Cache - displayName: 'Toolchain Cache' + displayName: 'Toolchain Prebuilt Cache' - ${{ if eq(parameters.toolchain, 'gcc') }}: - task: Cache@2 inputs: key: '"toolchain" | "${{ parameters.arch }}" | Toolchain/BuildIt.sh | Toolchain/Patches/*[!llvm].patch | Userland/Libraries/LibC/**/*.h | Userland/Libraries/LibPthread/**/*.h' path: $(Build.SourcesDirectory)/Toolchain/Cache - displayName: 'Toolchain Cache' + displayName: 'Toolchain Prebuilt Cache' + + - task: Cache@2 + inputs: + key: '"toolchain ccache" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}" | "$(timestamp)"' + restoreKeys: | + "toolchain ccache" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}" + path: ${{ parameters.toolchain_ccache_path }} + displayName: 'Toolchain Compiler Cache' + + - script: | + CCACHE_DIR=${{ parameters.toolchain_ccache_path }} ccache -M ${{ parameters.toolchain_ccache_size }} + CCACHE_DIR=${{ parameters.toolchain_ccache_path }} ccache -s + displayName: 'Configure Toolchain ccache' - task: Cache@2 inputs: diff --git a/Meta/Azure/Serenity.yml b/Meta/Azure/Serenity.yml index bb12cea201..557397b740 100644 --- a/Meta/Azure/Serenity.yml +++ b/Meta/Azure/Serenity.yml @@ -8,6 +8,10 @@ jobs: variables: - name: SERENITY_CCACHE_DIR value: $(Build.SourcesDirectory)/.ccache + - name: LLVM_CCACHE_DIR + value: $(Build.SourcesDirectory)/Toolchain/.ccache + - name: LLVM_CCACHE_MAXSIZE + value: 20GB pool: vmImage: ubuntu-20.04 @@ -23,8 +27,10 @@ jobs: toolchain: 'clang' build_directory: 'Build/${{ parameters.arch }}clang' serenity_ccache_path: '$(SERENITY_CCACHE_DIR)' + toolchain_ccache_path: '$(LLVM_CCACHE_DIR)' + toolchain_ccache_size: '$(LLVM_CCACHE_MAXSIZE)' - - script: ./Toolchain/BuildClang.sh + - script: ./Toolchain/BuildClang.sh --ci displayName: Build Toolchain env: TRY_USE_LOCAL_TOOLCHAIN: 'y' @@ -91,5 +97,9 @@ jobs: condition: failed() - script: | + echo "##[section]Toolchain Cache" + CCACHE_DIR='$(LLVM_CCACHE_DIR)' ccache -s + + echo "##[section]Serenity Cache" CCACHE_DIR='$(SERENITY_CCACHE_DIR)' ccache -s displayName: 'Cache Stats' |