更新时间:2024-11-21 GMT+08:00
分享

在Jenkins界面中构建并执行Pipeline

构建Pipeline

本示例将使用Jenkins界面构建一个Pipeline。该Pipeline的内容是从代码仓中拉取代码,将代码打包成镜像,并推送到SWR镜像仓库中。

  1. 在Jenkins Dashboard界面右侧导航栏单击“New Item”
  2. 输入任务名称,并选择创建Pipeline。

    图1 创建Pipeline

  3. 仅配置Pipeline脚本,其他保持默认。

    图2 配置Pipeline脚本

    以下Pipeline脚本仅供您参考,您可根据自身业务自定义脚本内容,更多语法信息请参见Pipeline

    def swr_region = "cn-east-3"
    def organization = "container"
    def git_repo = "http://github.com/xxx.git"
    def app_git_branch = "master"
    
    
    podTemplate(
    inheritFrom: 'jenkins-agent',    // 请替换为5中创建的Pod Template名称
    cloud: 'ap-test'    // 请替换为4中创建的Cloud名称
    ) {
       // 拉取代码仓中的代码
       node(POD_LABEL) {
          stage('拉取代码') {
                echo "pull clone"
                git branch: "${app_git_branch}",  url: "${git_repo}"
           }
    
       // 利用maven容器将代码仓中拉取的代码打包(该打包方式仅适合Java,其他语言请更换打包方式)
       container('maven'){
          stage('代码打包') {
                echo "build package"
                sh "mvn clean package  -DskipTests"
           }
        }
    
       // 利用kaniko容器将打包后的代码推送至SWR中,并将镜像命名为tomcat
       container('kaniko'){
          stage('镜像推送') {
                echo "build images and push  images"
                sh "/kaniko/executor -f Dockerfile -c . -d swr.${swr_region}.myhuaweicloud.com/${organization}/tomcat:${BUILD_ID} --force"
           }
        }      
    }
    }
    表1 Pipeline脚本参数说明

    参数

    示例

    说明

    swr_region

    cn-east-3

    表示SWR镜像仓库的区域。

    说明:

    该SWR镜像仓库用于存放代码打包的镜像,区域需要与3中的区域一致。

    organization

    container

    表示SWR中的组织名称,该组织名称可以根据实际需求进行选择。

    git_repo

    https://github.com/xxx.git

    表示代码存放的具体地址,即代码库地址。

    app-git-branch

    master

    表示代码库的分支。

  4. 脚本配置无误后,单击“Save”

执行Pipeline并查看运行结果

执行Pipeline后,集群自动创建名为“pipe-xxx”的Pod实例,该Pod会根据“Pod Template”中的信息创建三个容器,分别是jnlp、kaniko和maven。该Pod会依次完成从代码仓拉取代码、将代码打包成镜像和将镜像推送到SWR镜像仓库的操作,完成后自动删除。

  1. 右侧列表单击“Build Now”,开始执行Pipeline任务。
  2. 返回CCE控制台,单击对应集群名称。左侧导航栏单击“工作负载”,选择“容器组”页签,可以看到Pipeline创建的Pod实例。

    图3 新建的Pod实例

  3. 在新创建的Pod实例右侧单击“更多”,单击“容器列表”,可以看到按照“Pod Template”中的信息创建三个容器,即jnlp、kaniko和maven。

    图4 新建容器

  4. 完成从代码仓拉取代码、将代码打包成镜像和将镜像推送到SWR镜像仓库的任务后,该Pod会自动删除,如图5所示。

    图5 Pod自动删除

  5. 检查SWR镜像仓库是否有新推送的镜像tomcat。

    图6 推送的镜像

相关文档