当前位置: 首页 > 科技观察

使用Jenkins和Nginx实现前端项目的自动化构建和持续集成

时间:2023-03-15 13:01:10 科技观察

实现目标本地推送代码到GitHub,Webhook自动触发Jenkins上的构建动作,完成Node插件的安装和打包,以及然后通过PublishOverSSH插件,将打包后的文件,部署到目标服务器上。前期准备GitHub账号和项目CentOS服务器服务器JavaSDK服务器安装Nginx+启动服务器安装Jenkins+启动Jenkins介绍Jenkins是一个用Java编写的开源持续集成工具,可以通过yum命令行直接在CentOS上安装。Jenkins只是一个平台,真正起作用的是插件。这也是Jenkins受欢迎的原因,因为Jenkins有各种各样的插件。首先登录服务器更新系统软件$yumupdateinstallJavaandGit$yuminstalljava$yuminstallgitinstallNginx$yuminstallnginx//install$servicenginxstart//出现StartRedirectingto/bin/systemctlstartnginx.service。这意味着Nginx已成功启动。访问http://你的ip/。如果安装成功,会出现默认的Nginx欢迎界面:InstallJenkins$wget-O/etc/yum.repos.d/jenkins.repohttp://pkg.jenkins-ci.org/redhat/jenkins.reporpm--importhttps://jenkins-ci.org/redhat/jenkins-ci.org.key$yuminstalljenkins//完成后直接使用yum命令安装Jenkins$servicejenkinsrestart//启动JenkinsJenkins启动成功后,默认端口为8080,你在浏览器中输入你的服务器IP地址加上8080端口就可以访问了。输入cat/var/lib/jenkins/secrets/initialAdminPassword查看初始密码。这里我们选择推荐一般插件安装,选择后等待插件安装和账户初始化完成即可。然后安装推荐的两个插件:Rebuilder、SafeRestart。在Jenkins中安装NodeJs插件因为我们的项目需要用Node打包,所以首先在Jenkins中安装NodeJs插件。安装完成后,进入全局工具配置,配置一个我们要使用的Node版本。创建任务单击可创建新任务。Jenkins关联GitHub项目地址:选择构建环境,编写shell命令:配置完成后,点击BuildNow,等待构建完成,点击Workspace,可以发现多了一个打包好的dist目录。单击控制台输出以查看详细的构建日志。至此本地代码已经提交到GitHub,接下来点击BuildonJenkins拉取代码并打包。接下来就是将打包后的dist目录放到目标服务器上。安装PublishOverSSH插件,我们将使用该工具来实现服务器部署功能。安装完成后,在SystemManagement->SystemSettings->PublishoverSSH中设置服务器信息:Passphrase:password(密钥的密码,不设置则为空)Pathtokey:密钥的路径file(privatekey)Key:将私钥复制到这个框里(你可以写一个key和key的路径)SSHServersconfiguration:SSHServerName:logo的名字(随便你选)Hostname:主机名或IP需要连接SSH的地址(推荐IP)Username:用户名RemoteDirectory:远程目录(上面第二步创建的testjenkins文件夹的路径)Advancedconfiguration:Usepasswordauthentication,oruseadifferentkey:勾选这个使用密码登录。如果你不想配置SSH,你可以先试试这个。Passphrase/Password:Password登录方式密码Port:端口(默认22)Timeout(ms):超时时间(毫秒)默认300000这里配置的账号密码登录,填写完成后点击测试,出现Success提示配置成功。在刚才的testJenkins项目中配置post-build操作,选择sendbuildartificialoverSSH,参数说明:Name:选择一个你配置的SSH服务器Sourcefiles:写你要传输的文件路径Removeprefix:要去掉的前缀,no远程服务器的目录结构会和Sourcefiles中写的一样。远程目录:写上你要部署在远程服务器上的目录地址。如果不写,表示SSHServers配置中的默认远程目录。exec命令:传输后要执行的命令,我这里是进入test目录,解压,解压后删除压缩包三个命令。注意build中添加压缩dist目录的命令:填充后执行build。成功登录到我们的目标服务器后,发现test目录下有需要运行的文件:访问域名,发现可以访问项目。接下来开发本地推送代码到GitHub后,触发Webhook,Jenkins自动执行构建。Jenkins安装GenericWebhookTrigger插件GitHub添加触发器配置方法在刚才的testJenkins项目中,点击BuildTrigger,选择GenericWebhookTrigger,填写token:GitHub配置Webhook。在GitHub项目中选择Settings->Webhooks>addwebhook配置方法按照上图红框中的格式,选择代码推送时触发Webhook,成功后下方会出现绿色小勾.测试一下,进入Vue项目首页的9900,然后将代码推送到GitHub,发现已经自动执行了Jenkins中的构建。查看页面也可以。构建了一套简单的前端自动化工作流程。是选择代码推送后在Jenkins中手动构建,还是推送后自动构建,视公司情况而定。最后写的有点啰嗦。希望大家指出错误。也希望这篇文章对大家有所帮助。