如何通过sbt-release在发布过程中推送/构buildDocker镜像
我是scala的新手。
我用sbt-release来控制发布过程和sbt-docker来构build/发布一个docker镜像。
我可以通过sbt release
发布特定版本,并通过sbt docker
或者sbt dockerBuildAndPush来构build/发布一个docker镜像。
如果我想发布一个特定的版本,我需要
- 执行
sbt release
- 请记住发行版本并修改发行版本的docker image标签
- 执行
sbt dockerBuildAndPush
但是太单调乏味了
我想将构build/发布docker镜像添加到发布过程中。
例如:
我在build.sbt
定义了我的发布过程
val publishDocker = ReleaseStep(action = st => { // 1. get release version from sbt-release // 2. add release version to docker image tag // 3. push docker image to aws ecr }) releaseProcess := Seq[ReleaseStep]( checkSnapshotDependencies, inquireVersions, runTest, setReleaseVersion, commitReleaseVersion, tagRelease, publishDocker, setNextVersion, commitNextVersion, pushChanges )
但我不知道如何实现publishDocker函数。
感谢您的帮助〜
谢谢你的build议,我自己解决了:>
这是我的sbt: https ://gist.github.com/pandaforme/e378dc3f1f32aa252b14e40937491e9c
我只是执行sbt release
,它会自动编译,生成发行版本,build立和推docker图像等。
我不熟悉sbt-docker
但可以从st: State
参数获取version
:
val publishDocker = ReleaseStep(action = st => { // 1. get version from sbt // (it was set by sbt-release in setReleaseVersion) val extracted = Project.extract(st) val version:String = extracted.get(sbt.Keys.version) })