ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

jenkins学习

2022-06-14 23:33:54  阅读:251  来源: 互联网

标签:集成 environment echo 学习 https 流水线 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/

标签:集成,environment,echo,学习,https,流水线,jenkins
来源: https://www.cnblogs.com/liuxingxing/p/16376812.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有