【问题标题】:How to use a Jenkinsfile for these build steps?如何在这些构建步骤中使用 Jenkinsfile?
【发布时间】:2021-07-01 03:44:41
【问题描述】:

我正在学习如何使用 Jenkins 并致力于配置 Jenkins 文件,而不是使用 Jenkins UI 进行构建。

从 Bitbucket 构建的源代码管理步骤:

构建 Docker 容器的构建步骤:

构建类型为多配置项目:

阅读 https://www.jenkins.io/doc/book/pipeline/jenkinsfile/index.html 的 Jenkins 文件文档并使用 Pipeline 创建新版本:

我不确定如何配置我通过 UI 配置的步骤:Source Code Management & Build。如何转换可用于 Jenkinsfile 的 Docker 和 Bitbucket 的配置?

【问题讨论】:

    标签: docker jenkins jenkins-pipeline bitbucket-pipelines


    【解决方案1】:

    无论您使用的是 UI 配置还是管道,SCM 都不会更改,尽管理论上您可以从管道中的步骤中执行 git clone,如果您真的坚持将 SCM 步骤转换为纯管道步骤.

    管道可以有多个阶段,每个阶段可以有不同的执行环境。您可以使用Docker pipeline plug-in,也可以使用普通的sh 在构建代理上发出docker 命令。

    这是来自我的手动构建管道之一的小样本:

    pipeline {
        agent none
        stages {
            stage('Init') {
                agent { label 'docker-x86' }
                steps {
                    checkout scm
                    sh 'docker stop demo-001c || true'
                    sh 'docker rm demo-001c || true'
                }
            }
            stage('Build Back-end') {
                agent { label 'docker-x86' }
                steps {
                    sh 'docker build -t demo-001:latest ./docker'
                }
            }
            stage('Test') {
                agent {
                    docker { 
                        label 'docker-x86' 
                    }
                }
                steps {
                    sh 'docker run --name demo-001c demo-001:latest'
                    sh 'cd test && make test-back-end'
                }
            }
        }
    }
    

    您需要创建Pipeline 类型的项目并在General 选项卡中指定SCM 配置。在Pipeline 选项卡中,您可以选择Pipeline scriptPipeline script from SCM。在构建和修改工作流程时,最好从 Pipeline script 开始。稳定后,您可以将其添加到存储库中。

    【讨论】:

    • 如果我创建新的管道作业,则 UI 步骤“源代码管理”和“构建”不可用,如果我创建“多配置”,则“源代码管理”和“构建”步骤可用项目'。从stackoverflow.com/questions/51766803/… 为了使用管道,我需要使用“管道”类型而不是“多配置项目”类型。 UI 步骤“源代码管理”和“构建”是否应该在“管道”构建类型中可用?
    • 是的,你需要创建一个pipeline类型的项目,我会在回答中说明这一点
    • 谢谢,Jenkins 不允许我在管道中使用“源代码管理”创建的 UI 选项“源代码管理”和“构建”?
    • 是的,您不能将 UI 中的选项用作 freestyle/multiconfig 项目,但是逻辑非常相似,“常规”选项允许您指定 SCM,Build 是替换为Pipeline
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-26
    • 2017-01-20
    • 2019-06-30
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多