BitBucket 管道未使用缓存进行 npm 安装
BitBucket pipeline is not using cache for npm install
我有一个 BitBucket 存储库,其中包含 ui
文件夹中的 Angular 应用程序代码和 api
文件夹中的节点 API 代码。
我的 BitBucket 管道为 Angular 应用程序运行 ng test
,但是 node_modules
文件夹没有被正确缓存。
这是我的 BitBucket 管道 yml 文件:
image: trion/ng-cli-karma
pipelines:
default:
- step:
caches:
- angular-node
script:
- cd ui
- npm install
- ng test --watch=false
definitions:
caches:
angular-node: /ui/node_modules
构建运行时显示:
Cache "angular-node": Downloading
Cache "angular-node": Extracting
Cache "angular-node": Extracted
但是当它执行 npm install
步骤时,它说:
added 1623 packages in 41.944s
我正在尝试加快构建速度,但我无法弄清楚为什么 npm 需要安装依赖项,假设它们已经包含在已恢复的缓存中。
我的猜测是,您的缓存位置不正确。 有一个可以激活的 pre-configured 节点缓存(名为 "node")。不需要为此做一个自定义缓存。(默认缓存失败,因为你的节点构建在克隆目录的子文件夹中,所以你需要一个自定义缓存)
缓存位置是相对于克隆目录的。 bitbucket 克隆到 /opt/atlassian/pipelines/agent/build
这可能就是为什么你的绝对 cache-path 不起作用。
只需将缓存引用设为相对就可以了
pipelines:
default:
- step:
caches:
- angular-node
script:
- cd ui
- npm install
- ng test --watch=false
definitions:
caches:
angular-node: ui/node_modules
这可能会解决您的问题
我有一个 BitBucket 存储库,其中包含 ui
文件夹中的 Angular 应用程序代码和 api
文件夹中的节点 API 代码。
我的 BitBucket 管道为 Angular 应用程序运行 ng test
,但是 node_modules
文件夹没有被正确缓存。
这是我的 BitBucket 管道 yml 文件:
image: trion/ng-cli-karma
pipelines:
default:
- step:
caches:
- angular-node
script:
- cd ui
- npm install
- ng test --watch=false
definitions:
caches:
angular-node: /ui/node_modules
构建运行时显示:
Cache "angular-node": Downloading
Cache "angular-node": Extracting
Cache "angular-node": Extracted
但是当它执行 npm install
步骤时,它说:
added 1623 packages in 41.944s
我正在尝试加快构建速度,但我无法弄清楚为什么 npm 需要安装依赖项,假设它们已经包含在已恢复的缓存中。
我的猜测是,您的缓存位置不正确。 有一个可以激活的 pre-configured 节点缓存(名为 "node")。不需要为此做一个自定义缓存。(默认缓存失败,因为你的节点构建在克隆目录的子文件夹中,所以你需要一个自定义缓存)
缓存位置是相对于克隆目录的。 bitbucket 克隆到 /opt/atlassian/pipelines/agent/build
这可能就是为什么你的绝对 cache-path 不起作用。
只需将缓存引用设为相对就可以了
pipelines:
default:
- step:
caches:
- angular-node
script:
- cd ui
- npm install
- ng test --watch=false
definitions:
caches:
angular-node: ui/node_modules
这可能会解决您的问题