git前端工程实现ci_gitlab中vue前端项目CI/CD部署笔记
持續(xù)集成
略
Gitlab的持續(xù)集成
我們可以將整個(gè)運(yùn)行機(jī)制,看作一個(gè)賞金獵人接任務(wù),執(zhí)行任務(wù),并完成任務(wù)的過程。
GitLab-CI
簡單來說,這就是一個(gè)任務(wù)發(fā)布平臺(tái)。運(yùn)行在gitlab服務(wù)器,監(jiān)聽代碼狀態(tài)變化,并發(fā)布對應(yīng)的任務(wù)。
GitLab-Runner
而每個(gè)runner就是一位賞金獵人,是任務(wù)的執(zhí)行者。
.gitlab-ci.yml
任務(wù)的發(fā)布者,規(guī)定什么時(shí)候觸發(fā)任務(wù),任務(wù)的具體內(nèi)容。
配置流程
經(jīng)過前面的解釋,整個(gè)思路就很清晰了。我們需要做的有三件事。編寫.gitlab-ci.yml文件,設(shè)置對應(yīng)的任務(wù)
部署Runner,激活賞金獵人
配置ci,邀請賞金獵人加入系統(tǒng)
部署Runner
這一步需要一個(gè)服務(wù)器,能run起來賞金獵人。
安裝
請務(wù)必安裝最新版,不然會(huì)出現(xiàn)很多未知的問題下載二進(jìn)制文件# Linux x86-64
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
# Linux x86
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-386
# Linux arm
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm
# Linux arm64
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-arm64授予執(zhí)行權(quán)限sudo chmod +x /usr/local/bin/gitlab-runnerCreate a GitLab CI user:sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bashInstall and run as service:sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
加入任務(wù)系統(tǒng)
注冊sudo gitlab-runner register
然后就是一些簡單的配置,配置完成后就將該Runner注冊到任務(wù)發(fā)布平臺(tái)了,然后就可以接任務(wù)了。詳細(xì)見參考文獻(xiàn)【1】
編寫.gitlab-ci.yml任務(wù)
本機(jī)部署版本
.gitlab-ci.ymlstages:
- deploy
cache:
paths:
- node_modules/
- public/
deployJob:
stage: deploy
script:
- npm install
- npm run build
- rm -rf /home/data/three_miju_shopper_manager_system_front/*
- cp -rf ./dist/* /home/data/three_miju_shopper_manager_system_front/
- sh ./bot.sh ${CI_COMMIT_REF_SLUG} ${CI_COMMIT_SHA:0:8} ${CI_COMMIT_MESSAGE}
tags:
- shared_test_machine_runner
only:
- dev
這個(gè)版本具有企業(yè)微信群機(jī)器人推送功能,需要配置./bot.sh#!/usr/bin/env bash
curl '群機(jī)器人地址' \
-H 'Content-Type: application/json' \
-d '
{
"msgtype": "markdown",
"markdown": {
"content": "商戶端代碼已更新,分支:'$1' 提交:'$2'
更新:'$3'
已發(fā)布,[點(diǎn)擊測試](http://test.shop.gileey.cn)"
}
}'
遠(yuǎn)程推送版本stages:
- deploy
cache:
paths:
- node_modules/
- public/
deployJob:
stage: deploy
script:
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" >> ~/.ssh/id_dsa
- chmod 600 ~/.ssh/id_dsa
- echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
- rsync -avzu --progress ./dist/* root@thinkmoon.cn:/www/wwwroot/3ju.psyannabel.cn/
tags:
- shared_test_machine_runner
only:
- dev
該版本在gitlab-runner機(jī)器上執(zhí)行編譯等工作,編譯完成后使用rsync同步到云服務(wù)器,需要配置私鑰變量$SSH_PRIVATE_KEY
遇到的問題
導(dǎo)入自定義組件時(shí)一直報(bào)錯(cuò):This dependency was not found:
出現(xiàn)背景:由于以前命名組件是"clickImg",后改成"ClickImg",由于linux的區(qū)分大小寫,所以會(huì)一直沒找到。
解決方案:換個(gè)名字???
參考文獻(xiàn)
總結(jié)
以上是生活随笔為你收集整理的git前端工程实现ci_gitlab中vue前端项目CI/CD部署笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十道经典面试算法真题详解
- 下一篇: 【Vue】Vue 中如何点击跳转页面