Jenkins
是什么?
Jenkins 是一款开源 CI&CD
软件,用于自动化各种任务,包括构建、测试和部署软件。
本博文将讲解自动构建的部分。
Jenkins
的安装可参考文章从零开始搭建JENKINS+GITHUB持续集成环境【多图】。
讲解的内容包括:
- 新建流水线
- Jenkins 配置
- Gitlab 配置
直接进入主题~
新建流水线
Dashboard -> 新建任务
✅ 建议:任务名称填写与仓库名称一致,一一对应方便查找任务。
新建完成任务之后,会自动跳转到该任务的配置页面。
Jenkins 配置
这里的配置,去要做一下细分。
公共配置
系统配置
Dashboard -> 系统管理 -> 系统配置 -> Gitlab
- Connection name 表示链接的名称,这里我填了 Gitlab ,后面要用到
- Gitlab host URL 表示你 Gitlab 的域名链接
- Credentials 凭证
- 凭证的获取需点击“添加”进入
- 具体的生成步骤 personal_access_tokens
全局工具配置
Dashboard -> 系统管理 -> 全局工具配置 - NodeJS
- 别名这里起了
nodejs
,在后面写 Jenkinsfile 的时候会用到
- 安装的版本当前的稳定版即可,文章发表时,
NodeJS
的稳定版是NodeJS 14.17.5
任务配置
如果按照正常操作,新建完成任务之后,会自动跳转到该操纵页面。当然,你还可以通过下面的操作进入:
Dashboard -> PipelineTask -> 配置
只需要留意下面的内容即可:
- General 板块
- 描述表明这个任务是干什么的,可有可无
- GitLab Connection 选择我们在“系统配置”中设定好的选项
- 构建触发器板块
- 只要勾选
Build when a change is pushed to GitLab. GitLab webhook URL: http://localhost:8080/project/PipelineTask
即可
🀄️ 这里有两点后面需要用到(上面截图并非完整,自行体验):
- GitLab webhook URL
- Secret token (点击“高级” -> Generate 按钮生成)
- 流水线模块
- 定义下拉框选择 Pipeline script from SCM ,因为我们是通过项目的
Jenkinsfile
进行构建的 - SCM 选择 Git
- Repository URL 填写项目的仓库地址,比如
https://gitlab.mydomain.com/apps/pipeline_task.git
- Credentials 是凭证,你 GitLab 的账号密码
Gitlab 配置
Gitlab
上做一个关联,与 Jenkins
关联上,当仓库 push
操作的时候,Jenkins
上自动构建项目。
🀄️ PS:当然 push
操作只是其中一种情况,还可以打标签之类的
进入你仓库相应项目 -> Settings -> Integrations
- URL 对应上面 Jenkins 触发器上设定的 GitLab webhook URL
- Secret Token 对应上面 Jenkins 触发器上生成的 Secret token
添加了 Webhook
之后可以进行测试,查看是否通了。
如果测试通过,会出现 Hook executed successfully: HTTP 200
的提示。
在触发构建之前,我们在对应仓库根目录下写个简单的脚本 Jenkinsfile
:
pipeline { agent any tools { nodejs "nodejs" } stages { stage('Dependency') { steps { sh 'npm install' } } stage('Build') { steps { sh 'npm run clean' sh 'npm run build' } } } } 复制代码
在项目每次进行 push
的时候,就会自动构建,构建的步骤按照 Jenkinsfile
设定的走。