当测试作业并行运行时,如何在gitlab上使用jest缓存

58wvjzkj  于 9个月前  发布在  Jest
关注(0)|答案(1)|浏览(83)

我们的repo使用jest运行测试需要20分钟,可以认为是慢的。现在我想提高运行测试的性能。
目前,我们在gitlab上运行测试,通过运行

stage: test
  parallel: 4
  script:
    - yarn test:ci --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL

字符串
优化后,仍然需要20分钟才能完成任务。所以我考虑,使用jest缓存。
但是,如果使用,我如何定义该高速缓存键呢

cache:
    key: '.jest-cache-${CI_COMMIT_REF_SLUG}-${CI_NODE_INDEX}'


每个分支都会有4个jest缓存,而且该高速缓存中的很多都是一样的,因为它们的缓存中都包含了转换后的npm包,而该高速缓存会占用很多空间。
你有什么好主意吗

2wnc66cl

2wnc66cl1#

我认为jest缓存可以在所有管道,所有节点之间共享。jest缓存的键可以是test-cache-$CI_PROJECT_NAME。所以这个缓存可以在同一个项目中的任何地方使用。策略应该是“pull-push”。

- key: test-cache-$CI_PROJECT_NAME
  paths:
    - .jestcache
  policy: pull-push

字符串

相关问题