From 5eba8c948d57f8d144a66177ad4c75e99bffa991 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Mon, 16 Aug 2021 19:02:27 -0400 Subject: [PATCH] CI: Use Azure caching for Lagom build Adds a compiler cache and a cache for the UCD files. --- Meta/Azure/Caches.yml | 24 ++++++++++++++++++++++++ Meta/Azure/Lagom.yml | 14 ++++++++++++++ Meta/Azure/Setup.yml | 4 ++-- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 Meta/Azure/Caches.yml diff --git a/Meta/Azure/Caches.yml b/Meta/Azure/Caches.yml new file mode 100644 index 0000000000..cd0a17ba4c --- /dev/null +++ b/Meta/Azure/Caches.yml @@ -0,0 +1,24 @@ +parameters: + os: 'Linux' + arch: 'i686' + toolchain: 'gcc' + build_directory: '' + ccache_version: 1 # Increment this number if CI has trouble with ccache. + +steps: + - task: Cache@2 + inputs: + key: '"ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.ccache_version }}"' + path: $(CCACHE_DIR) + displayName: 'Compiler Cache' + + - task: Cache@2 + inputs: + key: '"unicode_data" | Userland/Libraries/LibUnicode/unicode_data.cmake' + path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/UCD + displayName: 'UnicodeData Cache' + + - script: | + ccache -M 5G + ccache -s + displayName: 'Configure ccache' diff --git a/Meta/Azure/Lagom.yml b/Meta/Azure/Lagom.yml index c9baab2b0c..524ab10bdb 100644 --- a/Meta/Azure/Lagom.yml +++ b/Meta/Azure/Lagom.yml @@ -6,6 +6,8 @@ jobs: - job: 'Lagom_${{ parameters.os }}' variables: + - name: CCACHE_DIR + value: $(Build.SourcesDirectory)/.ccache - ${{ if eq(parameters.os, 'Linux') }}: - name: job_pool value: ubuntu-20.04 @@ -21,6 +23,13 @@ jobs: parameters: os: '${{ parameters.os }}' + - template: Caches.yml + parameters: + os: '${{ parameters.os }}' + arch: 'Lagom' + toolchain: 'gcc' + build_directory: 'Meta/Lagom/Build' + - script: | mkdir -p Meta/Lagom/Build displayName: 'Create Build Directory' @@ -28,6 +37,7 @@ jobs: - script: | cmake -GNinja \ -DBUILD_LAGOM=ON \ + -DENABLE_LAGOM_CCACHE=ON \ -DINCLUDE_WASM_SPEC_TESTS=ON \ -DWASM_SPEC_TEST_SKIP_FORMATTING=ON \ -DENABLE_UNDEFINED_SANITIZER=ON \ @@ -57,3 +67,7 @@ jobs: # FIXME: enable detect_stack_use_after_return=1 #7420 ASAN_OPTIONS: 'strict_string_checks=1:check_initialization_order=1:strict_init_order=1' UBSAN_OPTIONS: 'print_stacktrace=1:print_summary=1:halt_on_error=1' + + - script: | + ccache -s + displayName: 'Cache Stats' diff --git a/Meta/Azure/Setup.yml b/Meta/Azure/Setup.yml index 81ec9b8f5d..6e8d9858bc 100644 --- a/Meta/Azure/Setup.yml +++ b/Meta/Azure/Setup.yml @@ -9,7 +9,7 @@ steps: - script: | sudo apt-get purge -y clang-11 sudo apt-get update - sudo apt-get install ninja-build + sudo apt-get install ninja-build ccache sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-12 100 @@ -21,5 +21,5 @@ steps: - ${{ if eq(parameters.os, 'macOS') }}: - script: | - brew install ninja wabt + brew install ninja wabt ccache displayName: 'Install Dependencies'