如何在jenkins构建时调用sbt环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在jenkins构建时调用sbt环境变量相关的知识,希望对你有一定的参考价值。

我试图通过sbt创建AWS lambda函数。我有sbt插件

 addSbtPlugin("com.gilt.sbt" % "sbt-aws-lambda" % "0.6.6")

我有一个环境变量

'val env = Option(System.getProperty("myEnv")).getOrElse("int")'

我想在下面的sbt设置中使用此变量,并在sbt设置下针对lambda名称使用以下参数

.settings(
    s3Bucket := Some(s"bucket-name-resized-payload"),
    **lambdaName := Some(s"xxxx-xxxxx-$env"),**
    fork in Test := true,
    handlerName := Some("handler name"),
    roleArn := Some("arn:aws:iam::xxxxxxxx:role/xxx_xx_xxxx_role"),
    region := Some("eu-xxxx-1"),
    awsLambdaTimeout := Some(60),
    deployMethod := Some("S3")

我想要实现的是,如果代码在集成环境中运行,那么创建的函数应该是Xxxx-xxx-int,同样在prod中同步到xxx-xxx-sta。 sbt是通过Jenkins建立的。现在我很困惑如何传递参数sbt -Denv:=而代码是通过jenkins构建的我不希望为所有环境创建相同的lambda名称。请帮忙

答案

你有两个独立的jenkins管道吗?一个用于集成,一个用于生产?如果是这种情况那么你可以通过在一个管道中运行sbt -Denv=intsbt -Denv=sta来简单地构建工件

如果你有prod和int env的单一管道,那么你如何决定需要产生什么工件(prod / int)?

以上是关于如何在jenkins构建时调用sbt环境变量的主要内容,如果未能解决你的问题,请参考以下文章

如何设置 SBT 构建以在 Jenkins 测试失败时返回零退出代码?

在 build.sbt 中使用 Jenkins 内部版本号通过 sbt-native-packager 构建 RPM

如何使用Jenkins中的环境变量

如何在 Jenkins 中通过环境变量设置定期构建作业的时间表

在执行 maven 之前设置环境变量(在 jenkins 构建中)

如何使用 SBT Jenkins 插件运行特定测试以进行 ScalaTest 测试