Scala 在Travis或Github操作作业之间重用SBT编译的结果

Scala 在Travis或Github操作作业之间重用SBT编译的结果,scala,caching,sbt,travis-ci,github-actions,Scala,Caching,Sbt,Travis Ci,Github Actions,有人知道是否有可能有一个使用SBT(最新的1.4.3版本)的多阶段Travis构建,并在每个阶段重用前一阶段编译的代码 我尝试了缓存,但它似乎不起作用(我希望我只是错过了一些东西)。 我拥有的是第一个“编译”阶段,然后是第二个“测试”阶段,其中两个作业并行运行(单元测试和集成测试) 我想要的是编译编译所有的东西(包括测试代码),然后下一个阶段都会继续编译 我成功地组织了构建,但: 要么在每个步骤中重新编译,要么 通过缓存整个/,编译被保存……但随后它会忽略我推送的每一个新更改(显然) 我使用

有人知道是否有可能有一个使用SBT(最新的1.4.3版本)的多阶段Travis构建,并在每个阶段重用前一阶段编译的代码

我尝试了缓存,但它似乎不起作用(我希望我只是错过了一些东西)。 我拥有的是第一个“编译”阶段,然后是第二个“测试”阶段,其中两个作业并行运行(单元测试和集成测试)

我想要的是编译编译所有的东西(包括测试代码),然后下一个阶段都会继续编译

我成功地组织了构建,但:

  • 要么在每个步骤中重新编译,要么
  • 通过缓存整个
    /
    ,编译被保存……但随后它会忽略我推送的每一个新更改(显然)
我使用的缓存配置来自sbt文档:

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
文件?对于更大的人工制品,我可以理解,但编译代码的基本原理是什么?