使用jenkins进行流水线编译

天翼云开发者社区
• 阅读 4

本文分享自天翼云开发者社区《使用jenkins进行流水线编译》,作者:赵****媛 一、什么是CI/CD 企业应用程序开发参与者通常由开发人员,测试人员/QA工程师,运维工程师以及SRE(站点可靠性工程师)或IT运营团队组成。他们紧密合作,目标是高质量软件交付。CI/CD是两个独立过程的组合:CI(持续集成)/CD(持续部署)。 通过CI/CD流水线,软件研发可以实现从代码签入、测试、构建和部署直至生产阶段都在流水线中向前推进。 本文描述如何通过jenkins实现代码的流水线编译。 二、镜像制作 在代码编译过程中,编译环境是个重要因素,有可能由于不同研发人员的机器环境有差异,导致编译失败。为了实现标准化流程,可以采用基础镜像和容器使得编译环境统一。 镜像制作过程与常用docker命令:

  1. 编写Dockerfile Dockerfile 是一个文本文件,包含了构建 Docker 镜像的所有指令。通过定义一系列命令和参数,Dockerfile 指导 Docker 构建一个自定义的镜像。 可以通过FORM命令指定该镜像基于哪个基础镜像制作,相当于拿哪一台电脑作为基础,在上面安装需要的工具。
  2. 构建镜像 使用ducker build 进行镜像构建,-t后面指定nginx为镜像名称,:后面是给这个镜像打一个标签;注意最后的.代表当前目录,可以将工具的安装包和Dockerfile都放在当前文件中,默认使用Dockerfile文件,或者使用-f参数指定自定义的文件名称 docker build -f Dockerfile -t nginx:v3 .
  3. 查看镜像 Docker images查看本地镜像
  4. 推送仓库存储 可以使用docker push将镜像推送到harbor仓库存储,若本地镜像丢失,机器会去harbor上拉取对应的镜像

三、容器编译 通过docker run启动一个容器,在容器中使用编译命令进行编译

四、jenkins编写流水线 Jenkins是一个可以持续集成,持续交付,持续部署的自动化工具。 通过将脚本写到jenkinsfile中,是机器按照脚本中的命令执行各个阶段的操作。 Jenkinsfile由几个部分组成: (1)Agent: 指定执行的节点 (2)Options: 运行时的选项 (3)Environment:定义环境变量 (4)Stages:阶段(具体的操作在这里完成) (5)Post:构建后的操作(包含不同情况:总是、成功、失败、取消后)

Jenkinsfile的阶段: 一个流水线可以有一个或多个阶段,在每个阶段里定义步骤,步骤中编写具体的脚本。

        stage('Checkout') { //代码检出
            steps {
                script {...}
                      }
         }
         stage('Build-Package') { //编译打包
             when { 设置触发条件 }
             steps {
                script {...}
                      }
           }
         stage('Upload') { //介质上传
            steps {
                script {...}
                      }
         }
}
post {
      success{ //成功时后续操作
              script {...}
      }
      failure{ //失败时后续操作
              script {...}
      }
} language
点赞
收藏
评论区
推荐文章
Tommy744 Tommy744
4年前
DevOps简介
DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。DevOps的概念DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。
Tommy744 Tommy744
4年前
DevOps概述
DevOps概述DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营(运维)、质量保障(测试)(QA)部门之间的沟通、协作与整合。随着业务复杂化和人员的增加,开发人员和运维人员逐渐演化成两个独立的部门,他们工作地点分离,工具链不同,业务目标也有差异,这使
Stella981 Stella981
3年前
DevOps简介
DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程式开发、测试、系统运维等所有环节。DevOps的概念DevOps一词的来自于Development和Operations的组合,突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和
京东云开发者 京东云开发者
11个月前
【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现持续改进。流水线的
京东云开发者 京东云开发者
8个月前
【行云流水线】满足你对工作流编排的一切幻想~skr
作者:京东零售顾铮流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现
京东云开发者 京东云开发者
7个月前
【行云流水线】满足你对工作流编排的一切幻想~skr
作者:京东零售顾铮流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现
京东云开发者 京东云开发者
6个月前
【行云流水线】满足你对工作流编排的一切幻想~skr
作者:京东零售顾铮流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现
serverless与容器优缺点
本文分享自天翼云开发者社区@《》,作者:我是小朋友容器优势1、可移植性:使用容器,开发人员可以确保他们的应用程序可以在任何云平台或本地服务器上运行。2、轻量化:容器镜像以层叠加,在本地拥有镜像层缓存;计算资源使用方面,容器也比虚拟机更高效。3、快速启动:容
【行云流水线】满足你对工作流编排的一切幻想~skr
流水线模型众所周知,DevOps流水线(DevOpspipeline)的本质是实现自动化工作流程,用于支持软件开发、测试和部署的连续集成、交付和部署(CI/CD)实践。它是DevOps方法论的核心组成部分,旨在加速软件交付、提高质量和实现持续改进。流水线的
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
861
粉丝
16
获赞
40