IBM Bluemix 交付管道上的 SBT 支持
SBT support on IBM Bluemix Delivery Pipeline
我想将 PlayFramework 应用程序集成到 IBM Bluemix Delivery Pipeline 服务中。当我在构建阶段创建一个新作业时,我有一个支持的构建器类型列表:
Play 应用程序使用 SBT 进行构建,但它不在列表中。如果我使用 "Shell Script" 选项并调用一些 sbt
命令,作业显然会失败并显示错误消息 "sbt: command not found"。
有什么方法可以在执行构建的环境中安装 sbt 吗?
首先,了解一下当您 运行 使用持续交付的管道作业时会发生什么。您在作业配置的自定义脚本字段中放置的所有内容都将在新容器上执行。该容器在作业执行时使用 IBM 提供的基础映像启动。上述基础映像中未包含的任何内容都不会在您的管道作业中可用,至少不是开箱即用。
现在,由于上述基本映像不包含 SBT,您必须下载它并手动将其添加到您的 PATH 中。以下是您可以用来执行此操作的脚本。
#!/bin/bash
wget --output-document=/tmp/sbt.tgz https://github.com/sbt/sbt/releases/download/v1.0.0/sbt-1.0.0.tgz
tar -xvf /tmp/sbt.tgz --directory=/tmp
export PATH="/tmp/sbt/bin:$PATH"
chmod +x /tmp/sbt
// Run sbt commands below here
注意:我不熟悉 SBT 及其配置方式,但您可能需要在容器上尝试 Java 运行 次以支持您使用的 scala 版本使用 SBT。 Java包括 7 和 8,默认为 7。要切换到 Java8,您可以在作业脚本中包含以下内容:
#!/bin/bash
export JAVA_HOME=$JAVA8_HOME
export PATH="$JAVA_HOME/bin/:$PATH"
java -version # Verify that we are using java8 runtime
我想将 PlayFramework 应用程序集成到 IBM Bluemix Delivery Pipeline 服务中。当我在构建阶段创建一个新作业时,我有一个支持的构建器类型列表:
Play 应用程序使用 SBT 进行构建,但它不在列表中。如果我使用 "Shell Script" 选项并调用一些 sbt
命令,作业显然会失败并显示错误消息 "sbt: command not found"。
有什么方法可以在执行构建的环境中安装 sbt 吗?
首先,了解一下当您 运行 使用持续交付的管道作业时会发生什么。您在作业配置的自定义脚本字段中放置的所有内容都将在新容器上执行。该容器在作业执行时使用 IBM 提供的基础映像启动。上述基础映像中未包含的任何内容都不会在您的管道作业中可用,至少不是开箱即用。
现在,由于上述基本映像不包含 SBT,您必须下载它并手动将其添加到您的 PATH 中。以下是您可以用来执行此操作的脚本。
#!/bin/bash
wget --output-document=/tmp/sbt.tgz https://github.com/sbt/sbt/releases/download/v1.0.0/sbt-1.0.0.tgz
tar -xvf /tmp/sbt.tgz --directory=/tmp
export PATH="/tmp/sbt/bin:$PATH"
chmod +x /tmp/sbt
// Run sbt commands below here
注意:我不熟悉 SBT 及其配置方式,但您可能需要在容器上尝试 Java 运行 次以支持您使用的 scala 版本使用 SBT。 Java包括 7 和 8,默认为 7。要切换到 Java8,您可以在作业脚本中包含以下内容:
#!/bin/bash
export JAVA_HOME=$JAVA8_HOME
export PATH="$JAVA_HOME/bin/:$PATH"
java -version # Verify that we are using java8 runtime