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'