内容简介:个人理解,说白了就是把代码测试、打包、发布等工作交给一些工具来自动完成。这样可以提高效率,减少失误,开发人员只需要关心开发和提交代码到
个人理解,说白了就是把代码测试、打包、发布等工作交给一些 工具 来自动完成。这样可以提高效率,减少失误,开发人员只需要关心开发和提交代码到 git
就可以了。
怎么做?
-
方式一: 使用
当触发钩子条件时,(一般是web hooks
,这种方式的原理就是在gitlab
项目的Setting-Integrations
设置中增加一个请求url
和一个secret
,如下图git push
之后),gitlab
会主动把secret
带在请求头中去请求前面的url
,后端服务接受到这个请求后并验证secret
后,就可以为所欲为啦。这种方式不需要配置持续集成工具,但是需要自己单独专门写一个后端服务。由于今天主要使用下面的方式二,所以方式一的具体做法就不展开了,可以参考 Gitlab Webhooks自动化部署实战 -
方式二: 使用工具如
gitlab-CI
,这种方式的原理就是为项目在自己的服务器安装上注册gitlab-runner
,注册会有一个token
,服务器上运行gitlab-runner
后,runner
会轮询的发送带token
的http
请求给gitlab
,如果gitlab
有任务了,(一般是git push
),那么会把任务信息返回给runner
,然后runner
就开始调用注册时选的Executor
(我是用的shell
)来执行项目根目录下的配置文件.gitlab-ci.yml
,执行后把结果反馈给gitlab
。详细的工作原理请移步 当谈到 GitLab CI 的时候,我们该聊些什么 。对GitLab-CI,GitLab-Runner
等概念有点混乱的同学,可以看看这篇文章。下面说说我个人的使用步骤:-
在开发环境(如自己的windows上)开发前端项目(该项目我命名为
ci-test
),并推送到gitlab
远程仓库中。这里是用vue-cli 3.0
生成的vue
项目,我个人习惯增加如下自定义配置//vue.config.js module.exports = { outputDir: 'app-page', //自定义打包后的目录名,注意在.gitnore文件中也要忽略掉该目录 baseUrl: './' //打包时使用相对路径 } 复制代码
-
服务器上配置
nginx
,并配置默认访问目录,例如我自己的配置是/app
文件夹。具体做法请自行搜索。 -
安装
node
和git
,并在/app
目录下克隆gitlab
仓库中的代码,这时候服务器上就存在/app/ci-test
目录了 -
服务器上安装
gitlab-runner
,具体方法请参考官方文档 -
服务器上注册一个
而且要填的Runner
,具体方法参考官方文档,注意这里要填的url(一般是 https://gitlab.com)
和token
,都在gitlab
项目下的setting-CD/CD-Runners-Specific Runners
里面找(如下图),tags
也是有用的,后面的.gitlab-ci.yml
里面的tag
选项必须是这里的tags
里面的子项,最后executor
这里我是填的shell
-
注册后修改
gitlab-runner
的权限sudo chown -R gitlab-runner:gitlab-runner /home/gitlab-runner sudo chmod -R 777 /home/gitlab-runner 复制代码
-
开启
gitlab-runner
服务gitlab-runner run 复制代码
成功的话,会有一个绿点,如下图
-
在
vue
项目根目录下配置.gitlab-ci.yml
文件,具体配置选项请看文档。我的配置如下:#当Runner通过轮询检测到gitlab上有任务时,就会执行这个文件 #个人不是很熟yml的语法以及详细配置,都是找猫画虎的,求各位大神提出优化意见 stages: - update - test - build #更新代码并且安装依赖 update: stage: update script: - cd /app/ci-test #先进入到项目目录下,下面同理 - git pull - sudo npm install tags: #这里的tags一定要属于注册时填的tags中,下面同理 - update #执行单元测试 test: stage: test script: - cd /app/ci-test - npm run test:unit tags: - unitTest #打包 build: stage: build script: - cd /app/ci-test - npm run build tags: - build 复制代码
-
将
.gitlab-ci.yml
文件推送到gitlab
仓库中,在gitlab
项目页面中打开CI/CD-Pipelines
,即可看到效果,如下图status
那一列如果是绿色的passed
则说明大功告成,以后每次只需要提交代码即可,再也不用手动测试部署了。这个时候去浏览器中打开相应的地址,就可以看到部署成功。我的是这样的: 如果是红色的failed
则说明执行某一个命令的时候出错了,这时候就会收到一封邮件告知失败原因。
-
以上所述就是小编给大家介绍的《前端项目基于GitLab-CI的持续集成/持续部署(CI/CD)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 【前端打包部署】谈一谈我在SPA项目打包=>部署的处理
- 如何使用 docker 部署前端应用
- 前端自动化部署方案探索
- 前端工程化:构建、部署、灰度
- 前端之路: 如何用 jenkins 构建部署项目
- 前端项目无独立部署环境时,使用shell命令简化依赖后台部署的繁杂操作
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
删除
[英] 维克托•迈尔-舍恩伯格(Viktor Mayer-Schönberger)著 / 袁杰 译 / 浙江人民出版社 / 2013-1 / 49.90元
《删除》讲述了遗忘的美德,为读者展现了大数据时代的取舍之道。 《删除》从大数据时代信息取舍的目的和方法分别诠释了“被遗忘的权利”。维克托首先回溯了人类追寻记忆的过程,之后提出数字技术与全球网络正在瓦解我们天生的遗忘能力。对此,他考察了促进遗忘终止4大驱动力——数字化,廉价的存储器,易于提取,全球性访问。之后,他提出了当前数字化记忆的两大威胁——信息权力与时间,并给出了应对威胁的6大对策——数......一起来看看 《删除》 这本书的介绍吧!