Jenkins是一个DevOps工具,可以用来自动构建、测试和交付软件代码。如果你是Jenkins的新手,本教程将帮助你理解如何使用以下方法之一创建Jenkins流水线(Pipeline):
- 经典的Jenkins用户界面
- Jenkins Blue Ocean用户界面,减少杂波并增加清晰度
- Git仓库Jenkinsfile管道脚本
方法1:从经典的Jenkins UI创建流水线
打开Jenkins菜单,点击Create New Item
。输入流水线的名称:Test-Pipeline
。从选项列表中选择Pipeline
。单击Ok
,如下所示。
一旦创建了测试流水线,就编辑流水线。单击Pipeline
选项卡,并粘贴以下代码。这个示例代码有三个简单的阶段,每个阶段中定义了步骤。对于这个简单的示例,steps部分只有echo命令,它将输出一条消息。
pipeline {
agent any
stages {
stage('Stage 1: Integrate Web and DB') {
steps {
echo '1.1 Getting application web files'
echo '1.2 Getting database files'
echo '1.3 Combining web and db files'
}
}
stage('Stage 2: Integration testing') {
steps {
echo '2.1 Performing integration testing'
}
}
stage('Stage 3: Release to Prod') {
steps {
echo '3.1 Releasing code to production'
}
}
}
}
当管道被选中时,点击侧菜单栏中的Build Now
,将执行如下所示的流水线。
流水线执行之后,您可以从侧面菜单栏上的Console output
菜单项查看日志,如下所示。
方法2:从Blue Ocean接口创建流水线
Blue Ocean为Jenkins提供了更好的用户体验。这个UI是为Jenkins管道从头设计的,减少了混乱,增加了UI的清晰度。
首先,搜索blue ocean
,并从插件管理器安装blue ocean
插件。安装插件后,重新启动Jenkins。
在Jenkins服务器上,为blue ocean
安装一个本地git
仓库,以便在流水线中使用。
sudo yum install git -y
cd /var/lib/jenkins
mkdir localgit
cd localgit
git clone https://my-git-repor-url/v1/repos/BinCode
注意:我给出的git仓库路径为/var/lib/jenkins/localgit/BinCode
安装完插件后,你会在侧边栏上看到一个名为Open Blue Ocean
的菜单项,如下图所示:
您还可以通过将/blue附加到jenkins URL
直接访问blue ocean UI
。例如:http://192.168.101.100:8080/blue
第一次,Blue Ocean
将在本地git存储库中查找Jenkinsfile,并为每个包含Jenkins文件的分支运行一个管道。
由于我们还没有创建Jenkinsfile,它将显示一个从用户界面创建新管道的提示。管道创建UI将引导您完成创建新管道的步骤。首先,单击start旁边的
。点击Add a Step
,选择Print Message
,如下图所示。
输入消息后,单击后退箭头返回。先不要点击Save。
添加另一个步骤-Print Message
- 1.2Getting database files
-单击后退箭头返回。
重复上面的第3个echo步骤,如下所示。
在创建所有三个阶段之后,单击Save按钮保存流水线。您可以将更改提交给主服务器,或者创建一个新的分支。对于本例,选择Commit to new branch
,并给出名称为jenkins
,如下所示。
一旦管道被创建并执行,它将显示每个阶段的状态。单击特定的stage名,查看对应的stage输出,如下所示。
在Jenkins服务器上,您可以看到现在已经为您的存储库创建了一个名为Jenkins
的新分支
# git branch -a
jenkins
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
方法3:使用Git仓库的Jenkinsfile流水线脚本创建
首先,在存储库中创建Jenkinsfile,如下所示。在本例中,我使用的是分支中已经存在的Jenkinsfile。如果您没有这个文件,请创建一个。
代码语言:javascript复制# cd /var/lib/jenkins/localgit/BinCode
# git checkout jenkins
Switched to branch 'jenkins'
# git branch -a
* jenkins
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
# cat Jenkinsfile
pipeline {
agent any
stages {
stage('Stage 1: Integrate Web and DB') {
steps {
echo '1.1 Getting application web files'
echo '1.2 Getting database files'
echo '1.3 Combining web and db files'
}
}
stage('Stage 2: Integration testing') {
steps {
echo '2.1 Performing integration testing'
}
}
stage('Stage 3: Release to Prod') {
steps {
echo '3.1 Releasing code to production'
}
}
}
}
首先,按照方法1中解释的类似步骤,从经典UI中创建一个新流水线,并将该流水线命名为:SCM-Test-Pipeline
。接下来,选择SCM- test -Pipeline
并在Pipeline
选项卡下,定义选择的Pipeline script from SCM
选项,如下所示。确保脚本路径显示Jenkinsfile
,如下所示。
现在,这还将询问您的SCM仓库的详细信息。在这里输入您的git仓库详细信息。如果您的jenkins文件位于特定的分支中,请确保指定分支名称正确。
指定git仓库细节之后,执行流水线。流水线执行后,从侧菜单栏单击控制台输出查看流水线的执行日志输出。