mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-08 20:32:56 +03:00
d21c38a72d
In the last few commits, a second patch was added to the LLVM toolchain, and it no longer uses our binutils patch. This commit changes the CI cache keys accordingly, in order to prevent unnecessary rebuilds of both toolchains when only one is changed. The Clang toolchain's cache now only takes into account patches that begin with `llvm`, and the GNU toolchain excludes those from the hash calculation. We now also hash the two CMake cache files that we use for building LLVM and its runtime libraries.
77 lines
3.3 KiB
YAML
77 lines
3.3 KiB
YAML
parameters:
|
|
os: 'Linux'
|
|
arch: 'i686'
|
|
toolchain: 'gcc'
|
|
build_directory: ''
|
|
ccache_version: 1 # Increment this number if CI has trouble with ccache.
|
|
serenity_ccache_path: ''
|
|
toolchain_ccache_path: ''
|
|
toolchain_ccache_size: $(CCACHE_MAXSIZE)
|
|
with_remote_data_caches: true
|
|
|
|
steps:
|
|
- script: |
|
|
echo "##vso[task.setvariable variable=timestamp]$(date -u +"%Y%m%d%H%M_%S")"
|
|
displayName: 'Stamps'
|
|
|
|
- ${{ if ne(parameters.arch, 'Lagom') }}:
|
|
- ${{ if eq(parameters.toolchain, 'clang') }}:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"toolchain" | "x86_64" | Toolchain/BuildClang.sh | Toolchain/Patches/llvm*.patch | Toolchain/CMake/*.cmake | Userland/Libraries/LibC/**/*.h | Userland/Libraries/LibPthread/**/*.h'
|
|
path: $(Build.SourcesDirectory)/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 Prebuilt Cache'
|
|
|
|
- ${{ if ne(parameters.toolchain_ccache_path, '') }}:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"toolchain ccache" | "x86_64" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}" | "$(timestamp)"'
|
|
restoreKeys: |
|
|
"toolchain ccache" | "x86_64" | "${{ 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'
|
|
|
|
- ${{ if ne(parameters.serenity_ccache_path, '') }}:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}" | "$(timestamp)"'
|
|
restoreKeys: |
|
|
"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}"
|
|
path: ${{ parameters.serenity_ccache_path }}
|
|
displayName: 'Serenity Compiler Cache'
|
|
|
|
- script: |
|
|
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -M 5G
|
|
CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -s
|
|
displayName: 'Configure Serenity ccache'
|
|
|
|
- ${{ if eq(parameters.with_remote_data_caches, true) }}:
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"time_zone_data" | Meta/CMake/time_zone_data.cmake'
|
|
path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/TZDB
|
|
displayName: 'TimeZoneData Cache'
|
|
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"unicode_data" | Meta/CMake/unicode_data.cmake'
|
|
path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/UCD
|
|
displayName: 'UnicodeData Cache'
|
|
|
|
- task: Cache@2
|
|
inputs:
|
|
key: '"unicode_locale" | Meta/CMake/unicode_data.cmake'
|
|
path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/CLDR
|
|
displayName: 'UnicodeLocale Cache'
|