打开轮班构建配置与 jenkinsfile

Open shift build config vs jenkinsfile

我们正在使用 OpenShift。我混淆了 buildconfig 文件和 jenkinsfile。我们需要两者还是一个就足够了。我见过在 jenkinsfile docker build 中使用 buildconfig 文件定义的示例。在某些情况下,buildconfig 文件使用 jenkinsfile 作为构建策略。有人可以澄清一下吗

BuildConfig 是所有构建的基本类型,可以在构建配置中使用不同的构建策略,通过 运行ning oc explain buildconfig.spec.strategy 你可以看到它们。如果你想做一个 docker 构建你使用 dockerStrategy,如果你想使用 source2image 从源代码构建你指定 sourceStrategy.

有时您的需求比简单地 运行 使用输出图像构建更复杂,假设您想要 运行 构建,等待该图像部署到某个环境,然后然后 运行 一些自动化的 GUI 测试。在这种情况下,您需要一个管道。如果您想从 OpenShift Web 控制台触发和配置此管道,您可以在 BuildConfig 中使用 jenkinsPipelineStrategy。在 OpenShift 3.x Web 控制台中,此类 BuildConfig 显示为管道而不是构建,即使它们实际上都是 BuildConfig。

任何具有 jenkinsPipelineStrategy 的 BuildConfig 都将由项目中的 Jenkins 构建服务器 运行ning 执行。该 Jenkins 实例还可能具有其他未映射或在 OpenShift Web 控制台中不可见的管道,如果您没有看到它们出现在 OpenShift Web 控制台中的好处,则不需要为每个 Jenkinsfile 提供一个 BuildConfig。

运行在 Jenkinsfile 和 BuildConfig 中使用一些非 jenkinsfile 策略构建的区别在于构建实际上是在 jenkins 构建代理而不是普通的 OpenShift 构建 pod 中执行的。

在我们公司,我们将 jenkinsFile 管道和 BuildConfigs 与 sourceStrategy 结合使用。我们让管道调用 OpenShift API 并告诉它使用 sourceStrategy 执行 BuildConfig,而不是直接在 Jenkins 构建代理内部 运行ning 构建我们的 Jenkinsfile 管道。所以基本上我们仍然使用 s2i 来构建图像,但 Jenkinsfile 作为我们的 CI/CD 管道引擎。您可以在 https://github.com/openshift/jenkins-client-plugin.

找到一些这样的例子