Jenkins自动化构建部署前端项目(Linux+gitee)

这篇具有很好参考价值的文章主要介绍了Jenkins自动化构建部署前端项目(Linux+gitee)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文讲述了Jenkins自动化构建部署前端项目,内容包括Linux系统安装Jenkins、如何配置构建项目并发布到目标服务器。

背景

因公司系统项目众多,前端项目打包麻烦,项目代码管理混乱,因此需要gitee+Jenkins做自动化构建,优化项目打包流程及代码管理。
本次教程可实现最简单的自动化打包发布流程:从gitee上拉取前端项目代码 -> 执行命令打包构建 -> 将打包文件传输到目标服务器的指定位置

服务器之间使用ssh服务器账密连接。代码使用gitee管理。gitee的配置暂时也是使用gitee账密设置凭证来拉取代码

前提条件

1、Linux服务器
2、服务器 ip + 账密
3、gitee账密

安装Jenkins

Jenkins有四种安装部署方式,具体可以看下这篇文章。

知识点一
Jenkins官网有提到:Jenkins requires Java 11 or 17 since Jenkins 2.357 and LTS 2.361.1。
(翻译:从 Jenkins 2.357 和 LTS 2.361.1 版本开始,Jenkins 需要 Java 11或17版本)

● 不安装Java,需要安装2.357之前版本的Jenkins,不然运行时会报jdk版本的错。
● 安装2.357之后版本的Jenkins,Java安装版本不低于11

本次选择安装新版Jenkins,所以该需要安装Java。接下来就是安装步骤了。

安装Java11
yum install fontconfig java-11-openjdk -y

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

安装Jenkins源
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

若链接出现证书过期,根据提示加上 --no-check-certificate,即执行下面命令安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo --no-check-certificate

如果出现sudo: wget: command not found错误,需要先安装wget,装完重新安装源

yum -y install wget
导入下载密钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

安装Jenkins

以上步骤执行结束后,可以安装Jenkins了。安装过程中,提示输入yes或y就行。

yum install jenkins

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

如果出现以下报错:

warning: /var/cache/dnf/jenkins-0919f06c02b07800/packages/jenkins-2.249.3-1.1.noarch.rpm: Header V4 RSA/SHA512 Signature, key ID 45f2c3d5: NOKEY
Public key for jenkins-2.249.3-1.1.noarch.rpm is not installed

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

解决方案一:
解决办法(“”曲线救国“”),参考文章
修改已经下载好的Jenkins的yum源,原本是“”1“” 更改为“”0“” 零意思是不开启key的校验安装 Jenkins
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

解决方案二:
安装命令后面加上 --nogpgcheck

yum install jenkins--nogpgcheck

知识点二
卸载jenkins命令:sudo yum remove jenkins

启动Jenkins
sudo service jenkins start   //启动Jenkins
systemctl start jenkins   //启动Jenkins
sudo systemctl status jenkins // 检查 Jenkins 服务的状态

启动失败:多启动几次

若多次启动jenkins命令,还是显示启动失败,jdk还是引用的1.8,默认的加载usr/lib/jvm下的jdk,此时我们需要在usr/lib/jvm下安装对应的jkd11。

yum install java-11-openjdk* -y 

安装完成后需要改变下jdk的选中版本

alternatives --config java

列出可选的jdk版本,输入jdk11对应的序号即可
此时再启动jenkins成功

访问Jenkins界面。

在浏览器,通过服务器ip + 8080端口访问。例:http://192.168.0.118:8080/

如果访问失败,出现以下错误:
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

可能是开了防火墙,没有设置允许访问8080端口,解决方案:请看这篇文章

解锁Jenkins

解锁Jenkins需要密码,启动过程会给一个密钥,可以存下来。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

或者执行下面命令可以获取密码,将控制台输出的密码复制到解锁Jenkins的界面中。然后耐心等待……

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

解锁Jenkins成功后,直接关闭安装插件界面进入。推荐安装的插件绝大部分用不上,下载还很慢。后续可以自主选择插件安装。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

知识点三
若是跳过了安装插件这一步,便会直接跳过创建用户实例配置这两步。直接来到登录页面。
若没跳过安装插件这一步,则不会有登录这一步。

登录

如果跳过了安装插件,会直接来到登录界面,用户名是admin,密码是默认的解锁Jenkins 的密码(密钥)。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
登陆后,建议修改密码,可以通过右上角进入个人中心。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
进入configure(设置)-找到password(密码)。修改完密码后,重新登录一遍即可。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

创建用户

没有跳过插件安装,来到这一步。输入账号密码,记住这次的账密,将作为下次登录Jenkins使用。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

实例配置

建议使用默认值
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

装插件且配置插件

推荐安装的插件:一般前端项目需要Git插件、Gitee插件(拉取远程仓库代码)、NodeJS插件(运行项目打包)、Credentials Binding(凭据插件)、Publish Over SSH插件(远程文件发布/远程脚本执行)等等,想要Jenkins汉化,需要安装Chinese插件(中文插件)。
注:若无跳过,有些插件搜不到有可能就是已经安装了
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

插件安装后,重启一下Jenkins。
退出/重启Jenkins,在浏览器链接后面加上exit / restart就可以了,例如Jenkins访问地址是:http://49.235.74.26:8080/,就在浏览器访问http://49.235.74.26:8080/exit。

[访问地址]/exit         // 例如 http://49.235.74.26:8080/exit
[访问地址]/restart      // 例如 http://49.235.74.26:8080/restart
插件全局配置

插件全装完重启之后,Git、Node和SSH可以做一个全局的配置。Git、Node配置路径:Manage Jenkins -> Tools。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

Git全局配置

首先在Linux服务器(即Jenkins所在服务器)安装git。

yum install git -y  // 服务器安装git

git --version //查看版本号

whereis git  //查看git所在路径

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
安装成功后需要在Jenkins配置git 安装,路径Manage Jenkins -> Tool ->Git installations。在Path to Git executable填上服务器查到的git所在路径。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

Node全局配置

选择node版本,写上别名,保存。创建构建项目时会用到。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

SSH配置

配置要部署项目的服务器。准备好服务器ip,端口,账密。SSH配置路径:Manage Jenkins -> System->Publish over SSH->SSH Servers
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

新建构建项目

创建(New Item)

Dashboard->左侧 ->New Item(新建项目);
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

源码配置(Source Code Management)

新建成功->项目配置页(configure)->源码管理(Source Code Management)->选git,配置如下图所示;
仓库链接,就是clone代码的那个链接。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
凭据添加方式:可以全局配置凭证,或点击配置中的添加按钮添加。
若是公开仓库,凭据(Credentials)一栏可以选无,若是私有仓库,需要先添加一个可以访问该仓库的gitee账号作为凭据。
类型选用户名密码->下方填上登录gitee的账密->保存。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

构建触发器配置(Build Triggers)

git配置成功后,下拉到构建触发器(Build Triggers)配置项,选择Poll SCM(轮询SCM),做以下配置(每3分钟检查gitee代码是否有更新,有的话执行构建):

H/3 * * * *

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

知识点四
Poll SCM(轮询SCM),是指定时扫描本地代码仓库的代码是否有变更,如果代码有变更就触发项目构建。 它与定时构建(Build periodically)唯一不同的在于,只有当代码仓库变动了,才会触发构建,如果不变动,则不会触发。

日程表中* * * * *含义:

第一个星表示分钟 取值0–59

第二个星表示小时 取值0–23

第三个星表示日 取值1-31

第四个星表示月 取值1-12

第五个星表示星期 取值0-7

<!-- 常见触发构建的时间设置 是否触发构建具体看所选的构建方式-->
H/30 * * * *             //每30分钟构建一次
H H/2 * * *              //每2小时构建一次
H 8,12,22 * * *          //每天的8点,12点,22点,一天构建3次 (多个时间点中间用逗号隔开) 
H 12 * * *               //每天中午12点定时构建一次
H(0-29)/10 * * * *       //在每个小时的前半个小时内的每10分钟构建一次
H H(9-16)/2 * * 1-5      //每个工作日上午9点到下午5点内 每两小时 构建一次
构建环境配置(Build Environment)

前端项目需要打包构建->选择Provide Node & npm bin/ folder to PATH->选择适合项目运行的node环境(前面Node全局配置过的)
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

构建与发布

配置好触发构建的节点,接下来配置构建。首先要,明确是否跨端,部署的服务器是什么操作系统,常见Windows操作系统、Linux操作系统。
构建命令运行环境如何选:
○ Windows服务器:Execute Windows batch command
○ Linux服务器:Execute shell
构建命令如下:

npm install --registry=https://registry.npm.taobao.org
npm install
npm run build

构建情景:(跨端部署,Linux服务器构建,部署到Windows服务器)
首先需要配置Linux服务器,具体参考上面步骤的SSH配置
增加构建步骤(add build step)->选Execute shell->写构建命令。

node -v
npm install --registry=https://registry.npm.taobao.org
npm install
npm run build:dev

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

增加构建后操作(Post-build Actions)->选Send build artifacts over SSH->选即将部署的服务器->做相关配置
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
Transfer Set Source filesRemove prefix ,前者的配置将整个dist文件复制,后者在复制前把dist文件删除。整个配置结合起来就是将dist文件里所有内容复制到Remote directory配置的路径下。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
配置好以后记得应用保存。

执行构建

当所有构建项目的配置完成后,Dashboard->右侧选择所创建的项目->执行构建
点击左下角进度条可进入打印台查看构建中的详细信息。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
耐心等待,几分钟后,项目执行成功,进入控制台打印结果也是成功。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
---------------------------------------------------- 23-12-14 更新下面内容 --------------------------------------------------

上面的跨端部署,其实是失败的。虽然控制台打印了成功,但Exec command里的命令没有执行成功。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee
需要在控制台看到Exec command的报错,需要在配置的服务器上勾选打印选项。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

下面我将补充一下真正构建发布成功历程。

下面统一称呼。目标路径:C:\WWW\jkbuildtest(7001)\,目标服务器根目录(ssh根目录):C:\Program Files\OpenSSH\

特别说明
1、因为ssh配置问题, Remote directory 默认的根目录是目标服务器的ssh所在的安装目录(如:C:\Program Files\OpenSSH)。
2、Exec command 这里要特别说明:直接在这里写Windows操作系统的命令是不生效的。虽然该配置的说明表示的是在目标服务器执行的命令,但应该不是我们理解的那种。
3、Exec command 中默认的根目录也是目标服务器的ssh所在的安装目录。

原本的配置想实现的效果:文件会传到 Remote directory 目标路径文件夹中。
控制台查看打印结果,文件是传输成功,但文件并不在预期文件夹里。查找一番……

知识点
Remote directory 默认的根目录是ssh所在的安装目录(如:C:\Program Files\OpenSSH)。

因为根目录不是Windows系统的根目录。所以文件ssh根目录创了相应路径。但是目标路径并非在此目录里,如下图。
Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee

由此想出了两个解决方案:

一、修改ssh配置的根目录。
需要修改\etc\sshd_config 配置文件中的ChrootDirectory,但这配置也会影响其它服务器的根目录配置,且在一个文档看到这样的说法。

ChrootDirectory(在 v7.7.0.0 中添加的支持)

此指令仅在 sftp 会话中受支持。 到 cmd.exe 的远程会话不遵循 ChrootDirectory。 若要设置仅限 sftp 的 chroot 服务器,请将 ForceCommand 设置为 internal-sftp。 还可以通过实现仅允许 scp 和 sftp 的自定义 shell,来通过 chroot 设置 scp。

二、执行Windows .bat脚本。

将要执行的复制文件命令写在一个.bat脚本文件中。放在目标服务器根目录所在的文件路径下。通过Exec command,执行脚本。配置如下:

脚本命令如下:

rd/s/q C:\WWW\jkbuildtest(7001)\
xcopy /s C:\"Program Files"\OpenSSH\var\www\web\server171\data-cleaning-dev\dist C:\WWW\jkbuildtest(7001)\

Jenkins自动化构建部署前端项目(Linux+gitee),jenkins,自动化,前端,linux,gitee文章来源地址https://www.toymoban.com/news/detail-769998.html

到了这里,关于Jenkins自动化构建部署前端项目(Linux+gitee)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Jenkins部署与自动化构建

    docker 安装 Jenkins 拉取稳定版Jenkins镜像 注意: docker拉取镜像的时候要拉取 jenkins/jenkins 而不是jenkins 要装稳定版,否则后面会有很多插件装不上 挂载对应的容器卷 修改插件下载镜像源为清华镜像(可以先直接尝试一下是否可以安装成功) 访问web页面 http://IP:8090/ 去查看第一次

    2023年04月08日
    浏览(42)
  • 前端 Jenkins 自动化部署

    由于公司使用自己搭建的 svn 服务器来进行代码管理,因此这里 Jenkins 是针对 svn 服务器来进行的配置,其实跟Git 配置基本一致。 之前项目每次修改之后都需要本地 ​​npm run build ​​一次手动发布到服务器上方便测试和产品查看, 有了Jenkins持续集成之后只要 svn 或者 git 提

    2024年02月16日
    浏览(39)
  • DevOps—基于 Jenkins 构建 Vue 前端工程自动化流程

    一个完整的生产环境的 CI/CD 流程,往往会包括以下这些阶段: 编码 → 提交 → 构建 → 测试 → 交付 → 部署 这里只是演示,就省略了测试相关阶段,只包含提交、构建、发布、部署,一个简单的流程如下: vue 应用构建依赖于 Nodejs,需要在 Jenkins 上安装 Nodejs 插件,并且进

    2024年02月15日
    浏览(53)
  • Gitee + Jenkins实现前端自动化部署

    这是在window环境下面实施的,Jenkins安装自己去网上找( 推荐安装最新的版本,旧版本下载插件会有兼容问题 ),Jenkins必备插件Git、gitee、NodeJs(中文插件 Chinese需重启)。以gitee作为代码仓库,需要到仓库中的webHooks作为触发。本文借鉴了Gitee + Jenkins自动化实战 | 大前端 -

    2024年02月04日
    浏览(46)
  • Jenkins+Maven+Gitlab+Tomcat 自动化构建打包,部署

    1、安装服务 Jenkins工具、环境、插件配置 全局变量配置 Manage JenkinstoolsJDK 安装 安装插件 Deploy to container 安装此插件,才能将打好的包部署到tomcat上     配置国内mvn源 创建maven项目 1  2   3    4    5    6    7    8     9 10  

    2024年02月05日
    浏览(57)
  • Jenkins自动化部署项目

    https://www.jenkins.io/ https://blog.csdn.net/qq_41581588/article/details/128687402 https://blog.csdn.net/zhishidi/article/details/118082509 https://blog.csdn.net/Sojou/article/details/125935262 使用心得

    2024年02月05日
    浏览(42)
  • Docker + Jenkins + Nginx实现前端自动化部署

    文章有点长,如果你是以学习的态度来看这篇文章,建议收藏起来慢慢看。 前端自动化部署一直以来概念很清楚知道怎么回事,但是其中怎么操作没怎么研究过,虽然之前环境都搭起来了,但是也只是Jenkins构建项目成功,比如提交代码之后怎么触发自动构建,打包后的文件

    2024年02月05日
    浏览(49)
  • centos7:jenkins+nodejs前端自动化部署

    系统:centos7 nodejs版本:v16.18.1   npm版本:8.19.2 由于centos7最大只支持16.18.1版本,尽量让前端写代码时使用这个版本,linux系统如果要装高版本的node需要安装glibc库,很危险,尽量不要操作。 jenkins版本:推荐最新版,yum安装,不用docker安装,原因是npm命令在容器内无法有效执

    2024年02月03日
    浏览(49)
  • php项目自动化部署 —— Jenkins

    1.地址:Java Downloads | Oracle 因为我是在本地安装jenkins,这里用到的是java11-windows 2.安装JDK,并配置环境变量,csdn教程有很多 1.jenkins.msi 地址:Jenkins download and deployment,双击安装(傻瓜式) 2.安装完成以后,浏览器 并打开地址:localhost:8080 3.按照提示的路径输入密码 4.选择安

    2024年02月10日
    浏览(49)
  • 【OpenSSH+Jenkins搭建项目自动化部署】

    https://github.com/PowerShell/Win32-0penSSH/releases 下载最新的 OpenSSH安装包,如:openSSH-Win64.zip 将压缩包解压到 C:Program FilesOpenSSH 管理员运行cmd 进入目录C:Program FilesOpenSSH 执行命令 管理员运行cmd 进入目录C:Program FilesOpenSSH 执行命令 在当前用户的文件夹下会生成一对秘钥 将文件名

    2024年02月22日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包