Scala 在Travis或Github操作作业之间重用SBT编译的结果
有人知道是否有可能有一个使用SBT(最新的1.4.3版本)的多阶段Travis构建,并在每个阶段重用前一阶段编译的代码 我尝试了缓存,但它似乎不起作用(我希望我只是错过了一些东西)。 我拥有的是第一个“编译”阶段,然后是第二个“测试”阶段,其中两个作业并行运行(单元测试和集成测试) 我想要的是编译编译所有的东西(包括测试代码),然后下一个阶段都会继续编译 我成功地组织了构建,但:Scala 在Travis或Github操作作业之间重用SBT编译的结果,scala,caching,sbt,travis-ci,github-actions,Scala,Caching,Sbt,Travis Ci,Github Actions,有人知道是否有可能有一个使用SBT(最新的1.4.3版本)的多阶段Travis构建,并在每个阶段重用前一阶段编译的代码 我尝试了缓存,但它似乎不起作用(我希望我只是错过了一些东西)。 我拥有的是第一个“编译”阶段,然后是第二个“测试”阶段,其中两个作业并行运行(单元测试和集成测试) 我想要的是编译编译所有的东西(包括测试代码),然后下一个阶段都会继续编译 我成功地组织了构建,但: 要么在每个步骤中重新编译,要么 通过缓存整个/,编译被保存……但随后它会忽略我推送的每一个新更改(显然) 我使用
- 要么在每个步骤中重新编译,要么
- 通过缓存整个
,编译被保存……但随后它会忽略我推送的每一个新更改(显然)/
cache:
directories:
- $HOME/.cache/coursier
- $HOME/.ivy2/cache
- $HOME/.sbt
有什么想法吗
(或者,如果您知道这是Travis的问题,可以使它在Github操作中正常工作,这也没关系)有一个新的Travis功能(测试版),允许您将一个作业中的文件与生成中的后续作业共享:
作业:
包括:
-阶段:热缓存
脚本:
-echo“foo”>foo.txt
工作区:
创建:
名称:ws1
路径:
-foo.txt
-阶段:使用缓存
工作区:
用法:ws1
脚本:
-cat foo.txt | | true
此外,SBT1.4允许您将构建工件推送到Maven服务器,然后稍后再获取:缓存并不用于在阶段之间存储构建工件。您需要使用共享存储,如S3。另请参见,如果您想要覆盖,您必须重新编译代码,以便让覆盖工具添加插装,否则它将无法工作。我可以问一下,为什么它不用于在阶段之间存储
.class
文件?对于更大的人工制品,我可以理解,但编译代码的基本原理是什么?