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 设定的走。



相关文章
|
13天前
|
自然语言处理 jenkins 测试技术
Jenkins适合什么样的项目
【10月更文挑战第18天】Jenkins适合什么样的项目
24 3
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
63 0
|
1月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
89 0
|
2月前
|
测试技术 API
8-20|https://gitlab.xx.com/api/v4/projects/4/trigger/pipeline Request failed 状态码400
8-20|https://gitlab.xx.com/api/v4/projects/4/trigger/pipeline Request failed 状态码400
|
2月前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
3月前
|
jenkins 测试技术 持续交付
Jenkins 在多分支项目中的应用
【8月更文第31天】在现代软件开发实践中,分支管理是一项至关重要的策略,它允许开发团队在不同的功能开发、修复bug或进行实验时不会干扰主干代码。随着项目的复杂度增加,维护多个分支并确保它们的质量变得越来越具有挑战性。Jenkins 作为一款流行的持续集成(CI)和持续部署(CD)工具,提供了强大的功能来支持多分支项目的自动化测试和部署。本文将探讨 Jenkins 如何帮助管理多分支项目,并提供具体的代码示例。
81 0
|
4天前
|
jenkins Devops Java
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第27天】在快速发展的软件开发领域,DevOps实践日益重要。Jenkins作为一款流行的开源自动化服务器,在持续集成(CI)和持续部署(CD)中扮演关键角色。本文通过案例分析,探讨Jenkins在Java项目中的应用,展示其自动化构建、测试和部署的能力,提高开发效率和软件质量。
14 1
|
3月前
|
jenkins 持续交付 开发者
自动化部署:使用Jenkins和Docker实现持续集成与交付
【8月更文挑战第31天】本文旨在为读者揭示如何通过Jenkins和Docker实现自动化部署,从而加速软件开发流程。我们将从基础概念讲起,逐步深入到实际操作,确保即使是初学者也能跟上步伐。文章将提供详细的步骤说明和代码示例,帮助读者理解并应用这些工具来优化他们的工作流程。
|
5天前
|
jenkins Devops 测试技术
DevOps实践:Jenkins在持续集成与持续部署中的价值
【10月更文挑战第26天】随着DevOps理念的普及,Jenkins作为一款开源自动化服务器,在持续集成(CI)与持续部署(CD)中发挥重要作用。本文通过某中型互联网企业的实际案例,展示了Jenkins如何通过自动化构建、持续集成和持续部署,显著提升开发效率、代码质量和软件交付速度,帮助企业解决传统手工操作带来的低效和错误问题。
16 4
|
3月前
|
持续交付 jenkins Devops
WPF与DevOps的完美邂逅:从Jenkins配置到自动化部署,全流程解析持续集成与持续交付的最佳实践
【8月更文挑战第31天】WPF与DevOps的结合开启了软件生命周期管理的新篇章。通过Jenkins等CI/CD工具,实现从代码提交到自动构建、测试及部署的全流程自动化。本文详细介绍了如何配置Jenkins来管理WPF项目的构建任务,确保每次代码提交都能触发自动化流程,提升开发效率和代码质量。这一方法不仅简化了开发流程,还加强了团队协作,是WPF开发者拥抱DevOps文化的理想指南。
70 1