5-pipeline和代码上线


pipeline和代码上线

pipeline和代码上线 1

1. pipeline 2

2. 代码上线流程 12

pipeline

简介:

CI/CD持续集成,持续部署

持续集成:是一种软件开发实践,及团队经常集成他们的工作,每天可能发生多次集成,自动化构建(包括编译,发布,自动化测试)来验证,从而尽早发现错误(多次集成)

持续部署:通过自动化构建、测试和部署循环,每完成一部分就进行测试来交付高质量产品,即为持续部署(多次测试)

持续交付:没完成一部分就进行使用验收,叫做持续交付(每一个阶段都进行验收)

什么是pipeline

是一套运行于jenkins上的工作流框架,jenkins支持直接从代码库读取脚本,将原本独立运行于单个或者多个节点任务连接起来,实现单个任务难以完成的复杂发布流程。

pipeline大致框架:

构建、测试、发布

node:一台机器

stage:阶段(任务子集)

语法格式:

 

5-pipeline和代码上线

操作:使用声明式编写脚本

 

5-pipeline和代码上线

 

5-pipeline和代码上线

 

5-pipeline和代码上线

可以将代码放到本地,也可以从gitlab上获取。这里从gitlab上获取

 

5-pipeline和代码上线

 

5-pipeline和代码上线

 

5-pipeline和代码上线

jenkins识别代码中的Jenkinsfile这个名字执行脚本

在gilab上创建Jenkinsfile

 

5-pipeline和代码上线

安装discuzdb部署到nginx上的pipeline

pipeline{
	agent any
	stages{
		stage("get code"){
			steps{
				echo "get code"
			}
		}
		stage("unit test"){
			steps{
				echo "unit test"
			}
		}
		stage("package"){
			steps{
				sh 'cd /var/lib/jenkins/workspace/ && tar czf /var/lib/jenkins/workspace/pipeline-job-${BUILD_ID}.tar.gz  pipeline-job  --exclude=jenkinsfile'
			}
		}
		stage("deploy"){
			steps{
				sh 'ssh 192.168.1.12 "cd /usr/share/nginx && mkdir web-${BUILD_ID}"'
				sh 'scp  /var/lib/jenkins/workspace/pipeline-job-${BUILD_ID}.tar.gz 192.168.1.12:/usr/share/nginx/web-${BUILD_ID}'
				sh 'ssh 192.168.1.12 "cd /usr/share/nginx/web-${BUILD_ID} && tar xf pipeline-job-${BUILD_ID}.tar.gz && rm -rf pipeline-job-${BUILD_ID}.tar.gz-${BUILD_ID}.tar.gz"'
				sh 'ssh 192.168.1.12 "cd /usr/share/nginx/web-${BUILD_ID} && rm -rf /usr/share/nginx/html && ln -s /usr/share/nginx/web-${BUILD_ID}/pipeline-job  /usr/share/nginx/html"'	
			}
		}			
	}
}

将代码粘进去,题目为Jenkinsfile

pipeline{
	agent any
	stages{
		stage("get code"){
			steps{
				echo "get code"
			}
		}
		stage("unit test"){
			steps{
				echo "unit test"
			}
		}
		stage("package"){
			steps{
				sh  'tar czf /opt/web-${BUILD_ID}.tar.gz ./* --exclude=.git --exclude=Jenkinsfile'
			}
		}
		stage("deploy"){
			steps{
				sh 'ssh 192.168.1.12 "cd /usr/share/nginx && mkdir web-${BUILD_ID}"'
				sh 'scp /opt/web-${BUILD_ID}.tar.gz 192.168.1.12:/usr/share/nginx/web-${BUILD_ID}'
				sh 'ssh 192.168.1.12 "cd /usr/share/nginx/web-${BUILD_ID} && tar xf web-${BUILD_ID}.tar.gz && rm -rf web-${BUILD_ID}.tar.gz"'
				sh 'ssh 192.168.1.12 "cd /usr/share/nginx && rm -rf html && ln -s web-${BUILD_ID} /usr/share/nginx/html"'	
			}
		}			
	}
}

stage ("get code"):这一步表示从gitlab上获得代码

stage("unit test"):表示测试

stage("package"):代表打包

stage("deploy"):代表部署

 

5-pipeline和代码上线

回到jenkins,立即构建

 

5-pipeline和代码上线

pipeline输出结果最终会在jenkins上显示

 

5-pipeline和代码上线

访问web服务器,一键部署成功

 

5-pipeline和代码上线

代码上线流程

 

5-pipeline和代码上线

发布者:LJH,转发请注明出处:https://www.ljh.cool/36061.html

(0)
上一篇 2023年4月20日 上午2:17
下一篇 2023年4月20日 上午2:36

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注