河北省建设厅网站工程师查询,wordpress 仪表盘修改,网站备案最快几天,搜狗推广下架之前我分享了为ASP.NET Core后端搭建Gitlab-CI/CD实践#xff0c;今天继续聊一聊为前后端分离搭建Gitlab-CI的额外经验。BeforeGitlab-ci是Gitlab提供的CI/CD特性#xff0c;结合Gitlab简单友好的配置界面#xff0c;能愉悦的在Gitlab界面查看管道执行流程#xff0c;并自然… 之前我分享了为ASP.NET Core后端搭建Gitlab-CI/CD实践今天继续聊一聊为前后端分离搭建Gitlab-CI的额外经验。BeforeGitlab-ci是Gitlab提供的CI/CD特性结合Gitlab简单友好的配置界面能愉悦的在Gitlab界面查看管道执行流程并自然流畅的推动敏捷开发。Gitlab-CI/CD的核心是搭建Gitlab Runner、编写.gitlab-ci.yaml文件。详细示例请参考Gitlab CI/CDASP.NET Core.“本次前后端两个项目使用同一个Gitlab Runner(shell模式)前端项目的gitlab-ci.yaml构建Job如图Round 1单个Gitlab Runner可为多个项目提供构建服务“gitlab-Runner register命令只能接受一个注册token当时为支持多个项目花了不少冤枉心思倒腾Gitlab Runner.你可以为注册的项目解锁Runner这样Girlab Runner就可以为其他项目提供构建Round 2使用Runner缓存加快前端构建过程大家都知道npm_module被前端开发者诟病为毒瘤 而Gitlab runner执行每次构建job之前都会清场pull/fetch指定的代码再执行job, 这就导致每次build job会耗时很久(要拉取毒瘤)。#!/bin/bashcd packages/event-analysis
yarn config set registry http://registry.npm.xxoo.com yarn --prefer-offline --frozen-lockfile
npm run build
以上是build任务的脚本frontend.sh总耗时3m33s其中yarn命令拉取npm_modules耗时172.52sgitlab runner支持缓存在.gitlab-ci.yaml 文件中定义cache指令:cache被用来在job之间缓存文件更强大的是可以定义文件依赖缓存build:stage: buildcache:key:files:- packages/event-analysis/package.jsonpaths:- node_modulesscript:- ./frontend.shtags:- my-tag
缓存key是yarn命令要用到的package.json缓存内容是npm_modules;只要这个package.json文件未变更后续任务就会使用缓存的npm_modules而不用重建npm_modules依赖。使用runner缓存优化后build任务总耗时1m18s其中yarn命令耗时22.83s:Referencehttps://docs.gitlab.com/ee/ci/runners/#prevent-a-specific-runner-from-being-enabled-for-other-projectshttps://docs.gitlab.com/ee/ci/caching/Devops的圈子很大上面的Gitlab-ci也只是点到为止足够应付我手上的前后端分离项目.. 欢迎大家来捶我。前后端分离如何在前端项目中动态插入后端API基地址in docker解读三组容易混淆的Dockerfile指令掌握了Docker Layer Caching才敢自称精通Dockerfile基于docker-compose的Gitlab CI/CD实践排坑指南