CI: Use Cache@2 task in place of the old SaveCache@1 (#21057)

* CI: Use Cache@2 task in place of SaveCache@1

This is the officially supported successor to the old,
unofficial, Microsoft-DevLabs-hosted cache task.

It is simpler/easier to configure, and thus more friendly to forks.
This commit is contained in:
DeeDeeG
2020-08-26 10:38:19 -04:00
committed by GitHub
parent 0e6df6892a
commit 2f550cf0d3
4 changed files with 46 additions and 68 deletions

View File

@@ -30,12 +30,9 @@ jobs:
- script: npm install --global npm@6.9.0
displayName: Update npm
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
displayName: Restore node_modules cache
inputs:
keyfile: 'package.json, script/vsts/platforms/linux.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
- template: templates/cache.yml
parameters:
OS: linux
- script: script/bootstrap
displayName: Bootstrap build environment
@@ -45,14 +42,7 @@ jobs:
CC: clang-5.0
CXX: clang++-5.0
npm_config_clang: 1
condition: ne(variables['CacheRestored'], 'true')
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
displayName: Save node_modules cache
inputs:
keyfile: 'package.json, script/vsts/platforms/linux.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
condition: or(ne(variables['MainNodeModulesRestored'], 'true'), ne(variables['ScriptNodeModulesRestored'], 'true'), ne(variables['ApmNodeModulesRestored'], 'true'))
- script: script/lint
displayName: Run linter

View File

@@ -17,12 +17,9 @@ jobs:
versionSpec: 12.4.0
displayName: Install Node.js 12.4.0
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
displayName: Restore node_modules cache
inputs:
keyfile: 'package.json, script/vsts/platforms/macos.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
- template: templates/cache.yml
parameters:
OS: macos
- script: script/bootstrap
displayName: Bootstrap build environment
@@ -31,14 +28,7 @@ jobs:
CI_PROVIDER: VSTS
NPM_BIN_PATH: /Users/runner/hostedtoolcache/node/12.4.0/x64/bin/npm
npm_config_build_from_source: true
condition: ne(variables['CacheRestored'], 'true')
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
displayName: Save node_modules cache
inputs:
keyfile: 'package.json, script/vsts/platforms/macos.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
condition: or(ne(variables['MainNodeModulesRestored'], 'true'), ne(variables['ScriptNodeModulesRestored'], 'true'), ne(variables['ApmNodeModulesRestored'], 'true'))
- script: script/lint
displayName: Run linter
@@ -115,12 +105,9 @@ jobs:
versionSpec: 12.4.0
displayName: Install Node.js 12.4.0
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
displayName: Restore node_modules cache
inputs:
keyfile: 'package.json, script/vsts/platforms/macos.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
- template: templates/cache.yml
parameters:
OS: macos
# The artifact caching task does not work on forks, so we need to
# bootstrap again for pull requests coming from forked repositories.
@@ -131,8 +118,7 @@ jobs:
CI_PROVIDER: VSTS
NPM_BIN_PATH: /Users/runner/hostedtoolcache/node/12.4.0/x64/bin/npm
npm_config_build_from_source: true
condition: ne(variables['CacheRestored'], 'true')
condition: or(ne(variables['MainNodeModulesRestored'], 'true'), ne(variables['ScriptNodeModulesRestored'], 'true'), ne(variables['ApmNodeModulesRestored'], 'true'))
- task: DownloadBuildArtifacts@0
displayName: Download atom-mac.zip

View File

@@ -0,0 +1,30 @@
parameters:
- name: OS
displayName: Operating System
type: string
values:
- windows
- linux
- macos
steps:
- task: Cache@2
displayName: Cache node_modules
inputs:
key: 'npm | "$(Agent.OS)" | "$(buildArch)" | package.json, package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml'
path: 'node_modules'
cacheHitVar: MainNodeModulesRestored
- task: Cache@2
displayName: Cache script/node_modules
inputs:
key: 'npm | "$(Agent.OS)" | "$(buildArch)" | script/package.json, script/package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml'
path: 'script/node_modules'
cacheHitVar: ScriptNodeModulesRestored
- task: Cache@2
displayName: Cache apm/node_modules
inputs:
key: 'npm | "$(Agent.OS)" | "$(buildArch)" | apm/package.json, apm/package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml'
path: 'apm/node_modules'
cacheHitVar: ApmNodeModulesRestored

View File

@@ -48,21 +48,9 @@ jobs:
npm install
displayName: Install Windows build dependencies
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
displayName: Restore node_modules cache (x64)
inputs:
keyfile: 'package.json, script/vsts/platforms/windows.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json, script/vsts/x64-cache-key'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
condition: eq(variables['buildArch'], 'x64')
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
displayName: Restore node_modules cache (x86)
inputs:
keyfile: 'package.json, script/vsts/platforms/windows.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json, script/vsts/x86-cache-key'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
condition: eq(variables['buildArch'], 'x86')
- template: templates/cache.yml
parameters:
OS: windows
- script: |
node script\vsts\windows-run.js script\bootstrap.cmd
@@ -73,23 +61,7 @@ jobs:
NPM_BIN_PATH: "C:\\hostedtoolcache\\windows\\node\\12.4.0\\x64\\npm.cmd"
npm_config_build_from_source: true
displayName: Bootstrap build environment
condition: ne(variables['CacheRestored'], 'true')
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
displayName: Save node_modules cache (x64)
inputs:
keyfile: 'package.json, script/vsts/platforms/windows.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json, script/vsts/x64-cache-key'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
condition: eq(variables['buildArch'], 'x64')
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
displayName: Save node_modules cache (x86)
inputs:
keyfile: 'package.json, script/vsts/platforms/windows.yml, **/package-lock.json, !**/node_modules/**/package-lock.json, !**/.*/**/package-lock.json, script/vsts/x86-cache-key'
targetfolder: '**/node_modules, !**/node_modules/**/node_modules'
vstsFeed: 'bae1bc26-220d-43c7-a955-4de039370de2'
condition: eq(variables['buildArch'], 'x86')
condition: or(ne(variables['MainNodeModulesRestored'], 'true'), ne(variables['ScriptNodeModulesRestored'], 'true'), ne(variables['ApmNodeModulesRestored'], 'true'))
- script: node script\vsts\windows-run.js script\lint.cmd
env: