詹金斯构建时如何调用sbt环境变量

时间:2019-02-08 17:16:55

标签: 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设置中使用此变量 以及针对lambda名称的sbt设置下的以下参数

.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,在生产过程中也应在xxx-xxx-sta中进行。 sbt是通过詹金斯建立的。 现在我对如何传递参数感到困惑 sbt -Denv:=通过jenkins构建代码时 我不想为所有环境创建相同的lambda名称。 请帮助

1 个答案:

答案 0 :(得分:0)

您是否有两个单独的詹金斯管道? 一个用于集成,一个用于生产? 如果是这种情况,那么您可以通过在一个管道中运行sbt -Denv=intsbt -Denv=sta

来构建构件。

如果您同时具有prod和int env的单个管道,那么您如何确定需要生成哪些工件(prod / int)?