前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建

Jenkins Pipeline 结合 Gitlab 实现 Node 项目自动构建

作者头像
Jimmy_is_jimmy
发布2022-03-10 14:11:42
6680
发布2022-03-10 14:11:42
举报
文章被收录于专栏:call_me_Rcall_me_R

Jenkins 是什么?

Jenkins 是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

本博文将讲解自动构建的部分。

Jenkins 的安装可参考文章从零开始搭建JENKINS+GITHUB持续集成环境【多图】

讲解的内容包括:

  • 新建流水线
  • Jenkins 配置
  • Gitlab 配置

直接进入主题~

新建流水线

Dashboard -> 新建任务

create_a_pipeline.png
create_a_pipeline.png

✅ 建议:任务名称填写与仓库名称一致,一一对应方便查找任务。

新建完成任务之后,会自动跳转到该任务的配置页面。

Jenkins 配置

这里的配置,去要做一下细分。

公共配置

系统配置

Dashboard -> 系统管理 -> 系统配置 -> Gitlab

gitlab_setting.png
gitlab_setting.png
  • Connection name 表示链接的名称,这里我填了 Gitlab ,后面要用到
  • Gitlab host URL 表示你 Gitlab 的域名链接
  • Credentials 凭证

全局工具配置

Dashboard -> 系统管理 -> 全局工具配置 - NodeJS

  • 别名这里起了 nodejs ,在后面写 Jenkinsfile 的时候会用到
  • 安装的版本当前的稳定版即可,文章发表时,NodeJS 的稳定版是 NodeJS 14.17.5
任务配置

如果按照正常操作,新建完成任务之后,会自动跳转到该操纵页面。当然,你还可以通过下面的操作进入:

Dashboard -> PipelineTask -> 配置

只需要留意下面的内容即可:

step_general.png
step_general.png
  • General 板块
    • 描述表明这个任务是干什么的,可有可无
    • GitLab Connection 选择我们在“系统配置”中设定好的选项
step_trigger.png
step_trigger.png
  • 构建触发器板块
    • 只要勾选 Build when a change is pushed to GitLab. GitLab webhook URL: http://localhost:8080/project/PipelineTask 即可

🀄️ 这里有两点后面需要用到(上面截图并非完整,自行体验):

  1. GitLab webhook URL
  2. Secret token (点击“高级” -> Generate 按钮生成)
step_pipeline_scm_choose.png
step_pipeline_scm_choose.png
  • 流水线模块
    • 定义下拉框选择 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

gitlab_webhook.png
gitlab_webhook.png
  • URL 对应上面 Jenkins 触发器上设定的 GitLab webhook URL
  • Secret Token 对应上面 Jenkins 触发器上生成的 Secret token

添加了 Webhook 之后可以进行测试,查看是否通了。

如果测试通过,会出现 Hook executed successfully: HTTP 200 的提示。

在触发构建之前,我们在对应仓库根目录下写个简单的脚本 Jenkinsfile

代码语言:javascript
复制
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 设定的走。

【完】

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/08/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 新建流水线
  • Jenkins 配置
    • 公共配置
      • 任务配置
      • Gitlab 配置
      相关产品与服务
      持续集成
      CODING 持续集成(CODING Continuous Integration,CODING-CI)全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。图形化编排,高配集群多 Job 并行构建全面提速您的构建任务。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档