summaryrefslogtreecommitdiff
path: root/Meta/Azure/Toolchain.yml
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2021-10-17 12:45:04 -0400
committerBrian Gianforcaro <b.gianfo@gmail.com>2021-10-18 03:25:26 -0700
commitb11a34330a1ddab811419a696056e10448e7991b (patch)
treee7e9bb4831a24a2361450e3198a19e42ab9cfb75 /Meta/Azure/Toolchain.yml
parent957f98805a2f668576b130325395ac41cd6936a9 (diff)
downloadserenity-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.yml34
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'