--昨夜西风凋碧树,独上高楼,望尽天涯路
如何通过Docker启动Jenkins:https://blog.csdn.net/weixin_37417954/article/details/83379195
-
Git库准备
fork工程到自己的GitHub,地址为https://github.com/jenkins-docs/building-a-multibranch-pipeline-project
然后创建开发和生产两个分支:
初始状态的Jenkins文件为:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'echo "Hello world!"'
}
}
}
}
创建一个新的名为Multibranch Pipeline的Pipeline,Jenkins会检测到Git库中的分支并且在Pipeline中自动创建:
修改master分支中的Jenkinsfile文件如下
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000 -p 5001:5000'
}
}
environment {
CI = 'true'
}
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh './jenkins/scripts/test.sh'
}
}
}
}
点击进入branch(分支),选择master后面的开始按钮,build master分支:
等待一段时间之后构建成功:
-
添加deliver 和 deploy stages
下面添加交付和生产部署阶段到管道中,并且令Jenkins根据正在构建的分支选择性地执行这些步骤。修改master 分支下的Jenkinsfile:
pipeline {
agent {
docker {
image 'node:6-alpine'
args '-p 3000:3000 -p 5001:5000'
}
}
environment {
CI = 'true'
}
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh './jenkins/scripts/test.sh'
}
}
stage('Deliver for development') {
when {
branch 'development'
}
steps {
sh './jenkins/scripts/deliver-for-development.sh'
input message: 'Finished using the web site? (Click "Proceed" to continue)'
sh './jenkins/scripts/kill.sh'
}
}
stage('Deploy for production') {
when {
branch 'production'
}
steps {
sh './jenkins/scripts/deploy-for-production.sh'
input message: 'Finished using the web site? (Click "Proceed" to continue)'
sh './jenkins/scripts/kill.sh'
}
}
}
}
when{ branch ''}的意思是匹配branch执行该stage,build master看一下效果发现跳过了deliver和deploy步骤:
替换Jenkinsfile分别到development和production,然后分别运行,得到结果如下:
交付代码分支为:
部署代码分支为: