diff options
author | Timothy Flynn <trflynn89@pm.me> | 2021-10-17 12:45:04 -0400 |
---|---|---|
committer | Brian Gianforcaro <b.gianfo@gmail.com> | 2021-10-18 03:25:26 -0700 |
commit | b11a34330a1ddab811419a696056e10448e7991b (patch) | |
tree | e7e9bb4831a24a2361450e3198a19e42ab9cfb75 /Meta/Azure/Toolchain.yml | |
parent | 957f98805a2f668576b130325395ac41cd6936a9 (diff) | |
download | serenity-b11a34330a1ddab811419a696056e10448e7991b.zip |
CI: Build the Clang toolchain a single time for both onboard pipelines
As of the Clang 13 upgrade, we only need to build the toolchain once and
can use that toolchain for both x86_64 and i686. To do this, this breaks
the main Azure configuration into 3 "stages" (Lagom, Toolchain, and
Serenity), where the Serenity stage depends on the Toolchain stage.
This has the added benefit of uploading a new prebuilt toolchain cache
sooner than before, which should help alleviate pressure from PRs.
Diffstat (limited to 'Meta/Azure/Toolchain.yml')
-rw-r--r-- | Meta/Azure/Toolchain.yml | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Meta/Azure/Toolchain.yml b/Meta/Azure/Toolchain.yml new file mode 100644 index 0000000000..1abf363c41 --- /dev/null +++ b/Meta/Azure/Toolchain.yml @@ -0,0 +1,34 @@ +jobs: + - job: 'Serenity_Clang_Toolchain' + timeoutInMinutes: 0 # Setting to 0 means the maximum allowed timeout is used. + + variables: + - name: LLVM_CCACHE_DIR + value: $(Build.SourcesDirectory)/Toolchain/.ccache + - name: LLVM_CCACHE_MAXSIZE + value: 20GB + + pool: + vmImage: ubuntu-20.04 + + steps: + - template: Setup.yml + parameters: + os: 'Serenity' + + - template: Caches.yml + parameters: + toolchain: 'clang' + toolchain_ccache_path: '$(LLVM_CCACHE_DIR)' + toolchain_ccache_size: '$(LLVM_CCACHE_MAXSIZE)' + with_unicode_caches: false + + - script: ./Toolchain/BuildClang.sh --ci + displayName: Build Toolchain + env: + TRY_USE_LOCAL_TOOLCHAIN: 'y' + + - script: | + echo "##[section]Toolchain Cache" + CCACHE_DIR='$(LLVM_CCACHE_DIR)' ccache -s + displayName: 'Cache Stats' |