更新时间:2024-12-18 GMT+08:00
分享

在Jenkins界面中构建并执行Pipeline

构建Pipeline

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

  1. 在当前界面左上方路径中单击“Dashboard”,进入在Jenkins Dashboard界面,在右侧导航栏中单击“New Item”
  2. 输入任务名称test-pipe,并选择创建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”中的信息创建3个容器,分别是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控制台,检查SWR镜像仓库是否有新推送的镜像tomcat。

    图6 推送的镜像

后续操作:释放资源

如果您无需继续使用集群和ECS,请及时释放资源,避免产生额外的费用。

  1. 进入CCE控制台,在左侧导航栏中选择“集群管理”
  2. 找到需要删除的集群,单击集群卡片右上角的,并单击“删除集群”。
  3. 在弹出的“删除集群”窗口中,根据页面提示删除相关资源。

    在确认框中输入“DELETE”,单击“是”,开始执行删除集群操作。

    删除集群需要花费1-3分钟,请耐心等候。集群列表中对应集群名称消失,则说明删除集群成功。

  4. 进入云服务器控制台,左侧导航栏单击“弹性云服务器”,找到对应的ECS,右侧单击“更多”,单击“删除”

    在删除界面中勾选“删除云服务器绑定的弹性公网IP地址”“删除云服务器挂载的数据盘”,单击“下一步”

    图7 删除ECS

    在确认框中输入“DELETE”,单击“确定”,开始执行删除ECS操作。

    删除ECS需要花费0.5-1分钟,请耐心等候。ECS列表中对应ECS名称消失,则说明删除ECS成功。

    图8 删除ECS确认

相关文档