Jenkins 2.x实践指南
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.5 从版本控制库拉取pipeline

在Hello world示例中,我们是直接在Jenkins界面上填入pipeline内容的。在试验时可以这么做,但是不推荐,因为这样无法做到pipeline的版本化。

接下来,我们让Jenkins从Git仓库拉取pipeline并执行。

首先需要安装Git插件,然后使用SSH的clone方式拉取代码。所以,需要将Git私钥放到Jenkins上,这样Jenkins才有权限从Git仓库拉取代码。

将Git私钥放到Jenkins上的方法是:进入Jenkins→Credentials→System→Global credentials页,然后选择Kind为“SSH Username with private key”,接下来按照提示设置就好了,如图2-5所示。关于Credential的更多内容,我们会在第9章中进行详细介绍。目前只需要理解:Jenkins从Git仓库拉取代码时,需要SSH key就可以了,然后Jenkins本身提供了这种方式让我们设置。

图2-5 增加SSH key

另外,需要注意的是,我们需要提前将SSH的公钥放到Git仓库中。关于这方面内容网络上有很多教程,本书不再赘述。

现在,我们来看看项目结构,只有一个Jenkinsfile文件。

Jenkinsfile文件中的内容就是Hello world示例的内容。接下来,我们将项目推送到GitLab。

在Hello world示例中,在Pipeline节点下,在“Definition”中选择“Pipeline script from SCM”,并在“SCM”中选择“Git”,然后根据选项填入信息内容就可以了,如图2-6所示。

图2-6 从SCM下载pipeline

这里有两点需要注意:

• 在“Credentials”中选择我们刚刚创建的用于拉取代码的凭证。

•“Script Path”就是pipeline的文件名,默认是Jenkinsfile。

保存并创建成功后,执行,在日志中除了Hello world被打印出来,git clone过程的日志也被打印出来。