jenkins学习

一、背景

cicd现在很火,几乎每个公司又会有自己的ci系统,而且我们编码的过程中也会遇到ci,所以对ci展开学习。

二、基础知识

2.1持续集成CI

在传统软件开发过程中,集成通常发生在每个人都完成了各自的工作之后。在项目尾声阶段,通常集成还要痛苦的花费数周或者数月的时间来完成。持续集成是一个将集成提前至开发周期的早期阶段的实践方式,让构建、测试和集成代码更经常反复地发生。
开发人员通常使用一种叫做CI Server 的工具来做构建和集成。持续集成要能够自测代码。分别测试各自代码来保证它能够正常工作,这些测试通常被称为单元测试(Unit tests)。代码集成以后,当所有的单元测试通过后,会进行绿色构建(green build)。这表明他们已经成功地集成在一起,代码正按照测试预期地在工作。

2.2持续部署CD

持续交付是持续集成的延伸,而持续部署又是持续交付的延伸,通常将不同环境发布和测试过程称为部署流水线,并把部署到生产环境的过程实现自动化。

三、基础知识

3.1 jenkins安装

参考https://www.cnblogs.com/virgosnail/p/15330149.html进行安装;
修改端口号
(1)vim /etc/sysconfig/jenkins;
(2)修改8080为8765,:wq保存(下图)
(3)重启service jenkins restart(如果失败1、先stop 2、daemon-reload 3、start)
相关知识:
(1)/usr/lib/jenkins/:jenkins安装目录,WAR包会放在这里。
(2)/etc/sysconfig/jenkins:jenkins配置文件,“端口”,“JENKINS_HOME”等都可以在这里配置。
(3)/var/lib/jenkins/:默认的JENKINS_HOME。
(4)/var/log/jenkins/jenkins.log:Jenkins日志文件。

3.2 流水线

流水线可以通过以下任一方式来创建:
1、通过 Blue Ocean - 在 Blue Ocean 中设置一个流水线项目后,Blue Ocean UI 会帮你编写流水线的 Jenkinsfile 文件并提交到源代码管理系统。
2、通过经典 UI - 你可以通过经典 UI 在 Jenkins 中直接输入基本的流水线。
3、在源码管理系统中定义 - 你可以手动编写一个 Jenkinsfile 文件,然后提交到项目的源代码管理仓库中。
但通常认为最好的实践是在 Jenkinsfile 文件中定义流水线,Jenkins 之后会直接从源代码管理系统加载

最简单的自己写流水线:



pipeline { agent any stages { stage('更新开始') { steps { echo '更新开始' sh 'printenv' } } } }

3.3基本语法

when:
when { expression { BRANCH_NAME ==~ /(production|staging)/ } anyOf { environment name: 'DEPLOY_TO', value: 'production' environment name: 'DEPLOY_TO', value: 'staging' } }
for:
def browsers = ['chrome', 'firefox'] for (int i = 0; i < browsers.size(); ++i) { echo "Testing the ${browsers[i]} browser" }

if:
if (env.BRANCH_NAME == 'master') { echo 'I only execute on the master branch' } else { echo 'I execute elsewhere' }

try:
try { sh 'exit 1' } catch (exc) { echo 'Something failed, I should sound the klaxons!' throw }

environment:
pipeline { agent any environment { CC = 'clang' } stages { stage('Example') { environment { DEBUG_FLAGS = '-g' } steps { sh 'printenv' } } } }

四、参考文档

https://blog.51cto.com/u_12965094/2739656
Gitlab搭建:https://blog.csdn.net/aaaaaab_/article/details/82012044
https://www.jenkins.io/zh/doc/pipeline/tour/hello-world/

posted on 2022-06-14 23:11  星星眨着眼  阅读(190)  评论(0编辑  收藏  举报

导航