基于 Vue+ Webpack 配合 GitLab CI/CD 自动化部署的实践经验分享


前言

总有前辈们辛苦的去探索新轮子,造福我们这些晚辈哈!

最近研究了一个自动化部署的东西,大大造福开发的工程师们,再也不用一直重复的去做繁琐的部署工作了,一步到位,后面就可以好好开发了,把时间放在该花的地方。

软件开发的持续方法基于自动执行脚本,以最大程度地减少在开发应用程序时引入错误的机会。从开发新代码到部署新代码,他们几乎不需要人工干预,甚至根本不需要干预。


一、GitLab CI/CD 是什么?

GitLab CI/CD 是一个内置在 GitLab 中的工具,用于通过持续方法进行软件开发:

GitLab CI/CD 由一个名为 .gitlab-ci.yml 的文件进行配置,改文件位于仓库的根目录下。文件中指定的脚本由 GitLab Runner 执行。

基本 CI/CD 工作流程

一旦你将提交推送到远程仓库的分支上,那么你为该项目设置的 CI/CD 管道将会被触发。GitLab CI/CD 通过这样做:

  • 运行自动化脚本(串行或并行) 代码Review并获得批准
  • 构建并测试你的应用
  • 就像在你本机中看到的那样,使用 Review Apps 预览每个合并请求的更改
  • 代码 Review 并获得批准
  • 合并 feature 分支到默认分支,同时自动将此次更改部署到生产环境
  • 如果出现问题,可以轻松回滚

二、如何配置

1.配置gitlab runner

gitlab后台找到这个,进行配置,这里有更加详细的教程:进入

 

2.配置.gitlab-ci.yml

简单的示例:

#流水线的stages的顺序可以自己定义
#相同阶段的任务将会并发的执行,上一个阶段的任务完整的结束之后,下一个阶段的任务才会开始执行 
stages:
  - check_code 
  - build
  - deploy 
job1:
  stage: check_code
  script:
     - echo 'stage1 job ,读取变量为:' $param1
 
 
job2:
  stage: build
  script:
     - echo 'stage2 job  ,读取变量为:' $param2
 
job3:
  stage: deploy
  script:
     - echo 'stage3 job  ,读取变量为:' $param3

对于Vue的项目你可以这样写

image: aa-us3

variables:
  GIT_DEPTH: 10

stages:
  - install
  - build
  - deploy

cache:
  key: ${CI_BUILD_REF_NAME}
  paths:
    - node_modules/

build_release:
  stage: build
  script:
    - sed -i 's/{{account_url}}/\/\/api.cn\//g' .env #接口地址
    - sed -i 's/{{env}}/studio/g' .env #环境变量
    - npm install --registry=https://registry.npmmirror.com
    - npm run build
    - cd ./anchor_unity_webrtc/
    - ls -l | grep "^d" | awk '{print $9}' | awk '{print "cp -r ./" $0 " us3://xx-editor/"}' | xargs -L 1 us3cli
    - ls -l | grep "^-" | awk '{print $9}' | awk '{print "cp ./" $0 " us3://xx-editor/"}' | xargs -L 1 us3cli
    - ucdn_refresh -type=dir -list=http://xx-editor.cn/
  tags:
    - nodojs_deploy
  only:
    - /^tag_release.*$/

build_master:
  stage: build
  script:
    - sed -i 's/{{account_url}}/\/\/192.168.11.209:4006\//g' .env
    - sed -i 's/{{env}}/webapp/g' .env
    - rm ./public/robots.txt
    - npm install --registry=https://registry.npmmirror.com --force
    - npm run build
    - rsync -az --delete --password-file=<(echo "123456") ./xx/ rsync@192.168.11.243::dev_xx_editor/
  tags:
    - nodojs_deploy
  only:
    - /^master.*$/

然后在项目的根目录下写上配置文件:

 内容如下:

VUE_APP_ENV='{{env}}'
VUE_APP_ACCOUNT_URL='{{account_url}}'

这样子就配置好了一个简单的基于Vue的自动化部署了,有没有收到启发了,其实还可以增加多个打包模式,增加多个打包环境的任务,达到应付多种场景的需求


总结

对于前端的同学来说,去探索实现这个还是有点难度的,一般情况下也没太大需要。不过如果你项目达到一定程度,当你无法分身的时候,就试试这个轮子吧!好用到你想不到,以后不用让他人催着你部署了,全自动,就是这么简单。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue + Webpack多页/单页脚手架是一种用于构建Vue.js项目的工具。Vue.js是一个用于构建用户界面的JavaScript框架,而Webpack是一个模块打包工具。 多页/单页脚手架可以根据项目的需求选择构建方式。多页应用指的是每个页面都有自己的HTML文件,而单页应用则是只有一个HTML文件。在多页脚手架中,每个页面都有自己的入口文件和模板文件,Webpack会根据入口文件将各个页面的代码打包成独立的文件。这种方式适用于需要多个独立页面的项目。 而在单页脚手架中,只有一个HTML文件和一个入口文件。所有的页面内容都是通过Vue的路由机制来进行渲染和切换。这种方式适用于更复杂的单页应用,其中页面之间的切换是通过异步加载和前端路由来实现。 使用Vue + Webpack多页/单页脚手架的优点包括: 1. 灵活性:可以根据项目需求选择多页或单页应用方式。 2. 开发效率:脚手架提供了一套默认的配置,可以使开发者更快速地开始项目开发。 3. 模块化:使用Webpack打包模块,使得代码更易于管理和维护。 4. 热更新:脚手架支持热更新,可以在开发过程中实时看到修改的效果。 5. 生态系统:Vue.js和Webpack都有庞大的社区支持,可以方便地找到资料和解决问题。 总结起来,Vue + Webpack多页/单页脚手架是一种方便的工具,可以根据项目需求选择适合的构建方式,并提供了一系列的开发工具和优化配置,使开发更高效、更方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值