summaryrefslogtreecommitdiff
path: root/Meta/Azure/Caches.yml
blob: 0f412847d3467a50608342b3338f891fe57ec89b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
parameters:
  os: 'Linux'
  arch: 'i686'
  toolchain: 'gcc'
  coverage: 'OFF'
  build_directory: ''
  ccache_version: 1 # Increment this number if CI has trouble with ccache.
  serenity_ccache_path: ''
  serenity_ccache_size: '5G'
  toolchain_ccache_path: ''
  toolchain_ccache_size: $(CCACHE_MAXSIZE)
  with_remote_data_caches: true
  ndk_version: ''
  with_ndk_cache: false

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'
          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/binutils.patch | Toolchain/Patches/gcc/*.patch | Userland/Libraries/LibC/**/*.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.coverage }}" | "${{ parameters.ccache_version }}" | "$(timestamp)"'
        restoreKeys: |
          "ccache" | "${{ parameters.os }}" | "${{ parameters.arch }}" | "${{ parameters.toolchain }}" | "${{ parameters.coverage }}" | "${{ parameters.ccache_version }}"
        path: ${{ parameters.serenity_ccache_path }}
      displayName: 'Serenity Compiler Cache'

    - script: |
        CCACHE_DIR=${{ parameters.serenity_ccache_path }} ccache -M ${{ parameters.serenity_ccache_size }}
        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 | "$(timestamp)"'
        restoreKeys: |
            "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 | "$(timestamp)"'
        restoreKeys: |
            "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/locale_data.cmake | "$(timestamp)"'
        restoreKeys: |
            "unicode_locale" | Meta/CMake/locale_data.cmake
        path: $(Build.SourcesDirectory)/${{ parameters.build_directory }}/CLDR
      displayName: 'UnicodeLocale Cache'

  - ${{ if eq(parameters.with_ndk_cache, true) }}:
    - bash: |
        echo "##vso[task.setvariable variable=ANDROID_SDK_ROOT;]$ANDROID_SDK_ROOT"
      displayName: 'Set ANDROID_SDK_ROOT'
    - task: Cache@2
      inputs:
        key: '"ndk" | "$(Agent.OS)" | "${{ parameters.ndk_version }}" '
        path: $(ANDROID_SDK_ROOT)/ndk
      displayName: 'Android NDK Cache'