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

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

Jenkins 是什么?


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


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


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


讲解的内容包括:


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


直接进入主题~


新建流水线


Dashboard -> 新建任务


image.png


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


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


Jenkins 配置


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


公共配置


系统配置


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


image.png


  • Connection name 表示链接的名称,这里我填了 Gitlab ,后面要用到


  • Gitlab host URL 表示你 Gitlab 的域名链接


  • Credentials 凭证


  • 凭证的获取需点击“添加”进入



全局工具配置


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


image.png


  • 别名这里起了 nodejs ,在后面写 Jenkinsfile 的时候会用到


  • 安装的版本当前的稳定版即可,文章发表时,NodeJS 的稳定版是 NodeJS 14.17.5


任务配置


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


Dashboard -> PipelineTask -> 配置


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


image.png


  • General 板块


  • 描述表明这个任务是干什么的,可有可无


  • GitLab Connection 选择我们在“系统配置”中设定好的选项


image.png


  • 构建触发器板块


  • 只要勾选 Build when a change is pushed to GitLab. GitLab webhook URL: http://localhost:8080/project/PipelineTask 即可


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


  1. GitLab webhook URL


  1. Secret token (点击“高级” -> Generate 按钮生成)


image.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


image.png



  • URL 对应上面 Jenkins 触发器上设定的 GitLab webhook URL


  • Secret Token 对应上面 Jenkins 触发器上生成的 Secret token


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


image.png


如果测试通过,会出现 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 设定的走。



相关文章
|
9天前
|
Java jenkins 持续交付
Java项目jar包启动脚本,适用jenkins或定时任务或手动执行
Java项目jar包启动脚本,适用jenkins或定时任务或手动执行
|
10天前
|
JavaScript Java 应用服务中间件
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
用白薅来的gitlab自带的gitlab-runner部署一个vue项目
17 2
|
30天前
|
jenkins 网络安全 持续交付
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-后端项目发布(四)
53 3
|
30天前
|
jenkins 持续交付 开发工具
【gitlab】旧的gitlab项目迁移新的gitlab
【gitlab】旧的gitlab项目迁移新的gitlab
74 0
|
8天前
|
JavaScript 前端开发 中间件
Express框架搭建项目 node.js
【6月更文挑战第3天】这篇文章是关于使用Express框架构建Node.js Web应用的教程。Express是一个轻量级、功能丰富的框架,特点包括简洁灵活的核心、强大的中间件支持、灵活的路由系统和模板引擎兼容性。文章介绍了如何安装Express,并通过一个简单的示例展示了如何创建一个基本的Web服务器。最后,鼓励读者继续学习和实践,以充分利用Express和Node.js的能力。
8 1
|
10天前
|
缓存 Kubernetes Linux
CentOS 7上的GitLab Runner,让你的项目加速奔跑
CentOS 7上的GitLab Runner,让你的项目加速奔跑
23 1
|
21天前
|
JavaScript
node项目的建立
该文档介绍了如何建立一个Node.js项目,首先通过`npm init -y`进行项目初始化,然后安装Express `npm i express@4.17.1`。在`app.js`中设置服务器监听8080端口。接着,为解决跨域问题,安装CORS `npm i cors@2.8.5`,并在`app.js`中启用。项目包含用户路由,新建路由文件并导入到`app.js`,通过Postman测试验证。最后,将路由处理逻辑抽离到`router_handler/user.js`,在路由模块中引入并调用处理函数。
23 1
node项目的建立
|
24天前
|
开发工具 git
修改GitLab项目文件路径重新刷新配置报错问题原因及解决方案
修改GitLab项目文件路径重新刷新配置报错问题原因及解决方案
22 0
|
29天前
|
JavaScript Unix Shell
#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)
#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)
28 0
|
30天前
|
Java 开发工具 git
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
新的centos7.9安装docker版本的jenkins2.436.1最新版本-项目发布(三)
34 4