summaryrefslogtreecommitdiff
path: root/Meta/Azure/Caches.yml
blob: 2d9fad938056f0f84a10ccfbe34bd8c80b360f5b (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
parameters:
  os: 'Linux'
  arch: 'x86_64'
  toolchain: 'gcc'
  coverage: 'OFF'
  download_cache_path: ''
  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

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.download_cache_path }}/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.download_cache_path }}/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.download_cache_path }}/CLDR
      displayName: 'UnicodeLocale Cache'