diff --git a/script/vsts/platforms/cache.yml b/script/vsts/platforms/cache.yml new file mode 100644 index 00000000000..992e35bdca0 --- /dev/null +++ b/script/vsts/platforms/cache.yml @@ -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 diff --git a/script/vsts/platforms/linux.yml b/script/vsts/platforms/linux.yml index c2913a97253..56ea7468e3e 100644 --- a/script/vsts/platforms/linux.yml +++ b/script/vsts/platforms/linux.yml @@ -30,26 +30,9 @@ jobs: - script: npm install --global npm@6.12.1 displayName: Update npm - - task: Cache@2 - displayName: Cache node_modules - inputs: - key: 'npm | "$(Agent.OS)" | package.json, package-lock.json, script/vsts/platforms/linux.yml' - path: 'node_modules' - cacheHitVar: MainNodeModulesRestored - - - task: Cache@2 - displayName: Cache script/node_modules - inputs: - key: 'npm | "$(Agent.OS)" | script/package.json, script/package-lock.json, script/vsts/platforms/linux.yml' - path: 'script/node_modules' - cacheHitVar: ScriptNodeModulesRestored - - - task: Cache@2 - displayName: Cache apm/node_modules - inputs: - key: 'npm | "$(Agent.OS)" | apm/package.json, apm/package-lock.json, script/vsts/platforms/linux.yml' - path: 'apm/node_modules' - cacheHitVar: ApmNodeModulesRestored + - template: cache.yml + parameters: + OS: linux - script: script/bootstrap displayName: Bootstrap build environment diff --git a/script/vsts/platforms/macos.yml b/script/vsts/platforms/macos.yml index cb2115547ac..a4fe1619d6e 100644 --- a/script/vsts/platforms/macos.yml +++ b/script/vsts/platforms/macos.yml @@ -20,26 +20,9 @@ jobs: - script: npm install --global npm@6.12.1 displayName: Update npm - - task: Cache@2 - displayName: Cache node_modules - inputs: - key: 'npm | "$(Agent.OS)" | package.json, package-lock.json, script/vsts/platforms/macos.yml' - path: 'node_modules' - cacheHitVar: MainNodeModulesRestored - - - task: Cache@2 - displayName: Cache script/node_modules - inputs: - key: 'npm | "$(Agent.OS)" | script/package.json, script/package-lock.json, script/vsts/platforms/macos.yml' - path: 'script/node_modules' - cacheHitVar: ScriptNodeModulesRestored - - - task: Cache@2 - displayName: Cache apm/node_modules - inputs: - key: 'npm | "$(Agent.OS)" | apm/package.json, apm/package-lock.json, script/vsts/platforms/macos.yml' - path: 'apm/node_modules' - cacheHitVar: ApmNodeModulesRestored + - template: cache.yml + parameters: + OS: macos - script: script/bootstrap displayName: Bootstrap build environment @@ -128,26 +111,9 @@ jobs: - script: npm install --global npm@6.12.1 displayName: Update npm - - task: Cache@2 - displayName: Cache node_modules - inputs: - key: 'npm | "$(Agent.OS)" | package.json, package-lock.json, script/vsts/platforms/macos.yml' - path: 'node_modules' - cacheHitVar: MainNodeModulesRestored - - - task: Cache@2 - displayName: Cache script/node_modules - inputs: - key: 'npm | "$(Agent.OS)" | script/package.json, script/package-lock.json, script/vsts/platforms/macos.yml' - path: 'script/node_modules' - cacheHitVar: ScriptNodeModulesRestored - - - task: Cache@2 - displayName: Cache apm/node_modules - inputs: - key: 'npm | "$(Agent.OS)" | apm/package.json, apm/package-lock.json, script/vsts/platforms/macos.yml' - path: 'apm/node_modules' - cacheHitVar: ApmNodeModulesRestored + - template: 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. diff --git a/script/vsts/platforms/windows.yml b/script/vsts/platforms/windows.yml index 74e551e9a40..f24e7c9c1ec 100644 --- a/script/vsts/platforms/windows.yml +++ b/script/vsts/platforms/windows.yml @@ -48,26 +48,9 @@ jobs: npm install displayName: Install Windows build dependencies - - task: Cache@2 - displayName: Cache node_modules - inputs: - key: 'npm | "$(Agent.OS)" | "$(buildArch)" | package.json, package-lock.json, script/vsts/platforms/windows.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/windows.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/windows.yml' - path: 'apm/node_modules' - cacheHitVar: ApmNodeModulesRestored + - template: cache.yml + parameters: + OS: windows - script: | node script\vsts\windows-run.js script\bootstrap.cmd