diff --git a/script/vsts/platforms/templates/bootstrap.yml b/script/vsts/platforms/templates/bootstrap.yml index 898d8273c16..ddcc4f87ac1 100644 --- a/script/vsts/platforms/templates/bootstrap.yml +++ b/script/vsts/platforms/templates/bootstrap.yml @@ -28,4 +28,5 @@ steps: GITHUB_TOKEN: $(GITHUB_TOKEN) CI: true CI_PROVIDER: VSTS + npm_config_cache: $(Agent.BuildDirectory)/npm_package_cache_dir condition: or(ne(variables['MainNodeModulesRestored'], 'true'), ne(variables['ScriptNodeModulesRestored'], 'true'), ne(variables['ApmNodeModulesRestored'], 'true')) diff --git a/script/vsts/platforms/templates/cache.yml b/script/vsts/platforms/templates/cache.yml index 37683f403a4..78696d19f6f 100644 --- a/script/vsts/platforms/templates/cache.yml +++ b/script/vsts/platforms/templates/cache.yml @@ -12,6 +12,9 @@ steps: displayName: Cache node_modules inputs: key: 'npm | "$(Agent.OS)" | "$(BUILD_ARCH)" | package.json, package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml' + restoreKeys: | + npm | "$(Agent.OS)" | "$(BUILD_ARCH)" | package.json, package-lock.json + npm | "$(Agent.OS)" | "$(BUILD_ARCH)" path: 'node_modules' cacheHitVar: MainNodeModulesRestored @@ -19,6 +22,9 @@ steps: displayName: Cache script/node_modules inputs: key: 'npm | "$(Agent.OS)" | "$(BUILD_ARCH)" | script/package.json, script/package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml' + restoreKeys: | + npm | "$(Agent.OS)" | "$(BUILD_ARCH)" | script/package.json, script/package-lock.json + npm | "$(Agent.OS)" | "$(BUILD_ARCH)" path: 'script/node_modules' cacheHitVar: ScriptNodeModulesRestored @@ -26,5 +32,20 @@ steps: displayName: Cache apm/node_modules inputs: key: 'npm | "$(Agent.OS)" | "$(BUILD_ARCH)" | apm/package.json, apm/package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml' + restoreKeys: | + npm | "$(Agent.OS)" | "$(BUILD_ARCH)" | apm/package.json, apm/package-lock.json + npm | "$(Agent.OS)" | "$(BUILD_ARCH)" path: 'apm/node_modules' cacheHitVar: ApmNodeModulesRestored + + - task: Cache@2 + displayName: Cache npm package cache + inputs: + key: 'npm_package_cache | "$(Agent.OS)" | "$(BUILD_ARCH)" | script/package-lock.json, apm/package-lock.json, package-lock.json, script/vsts/platforms/${{ parameters.OS }}.yml' + restoreKeys: | + npm_package_cache | "$(Agent.OS)" | "$(BUILD_ARCH)" | script/package-lock.json, apm/package-lock.json, package-lock.json + npm_package_cache | "$(Agent.OS)" | "$(BUILD_ARCH)" + npm_package_cache + path: $(Agent.BuildDirectory)/npm_package_cache_dir + condition: or(ne(variables['MainNodeModulesRestored'], 'true'), ne(variables['ScriptNodeModulesRestored'], 'true'), ne(variables['ApmNodeModulesRestored'], 'true')) + # No need to restore network/package cache if bootstrapping will be skipped!