知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
微信小程序工程化之持續(xù)集成方案(學(xué)到了!)
發(fā)表時(shí)間:2021-1-4
發(fā)布人:葵宇科技
瀏覽次數(shù):58
本文將簡(jiǎn)單介紹一下持續(xù)集成的概念,并手把手帶你在你的微信小程序項(xiàng)目中完成屬于你的持續(xù)集成方案。
所有能降低成本,并且能提高效率的事情總稱(chēng)為工程化。在前端項(xiàng)目中能夠減少重復(fù)工作、擴(kuò)展 javascript\html\css 本身的語(yǔ)言能力、解決功能復(fù)用和變更問(wèn)題、解決開(kāi)發(fā)和產(chǎn)品環(huán)境差異問(wèn)題、任何時(shí)間任何地點(diǎn)生成可部署的軟件、解決發(fā)布流程問(wèn)題,都屬于前端工程化。
持續(xù)集成是前端工程化中的一部分,是一種軟件開(kāi)發(fā)實(shí)踐,即團(tuán)隊(duì)開(kāi)發(fā)成員經(jīng)常集成他們的工作,通常每個(gè)成員每天至少集成一次,也就意味著每天可能會(huì)發(fā)生多次集成。每次集成都通過(guò)自動(dòng)化的構(gòu)建(包括自動(dòng)化編譯,自動(dòng)化測(cè)試,自動(dòng)化發(fā)布)來(lái)驗(yàn)證項(xiàng)目代碼,從而盡早地發(fā)現(xiàn)錯(cuò)誤。
Web項(xiàng)目的持續(xù)集成方案選擇比較多,并且相對(duì)成熟,這里介紹一下 gitlab-ci 持續(xù)集成方案。
這種方式的原理就是為項(xiàng)目在自己的 linux 服務(wù)器安裝并注冊(cè) gitlab-runner ,注冊(cè)會(huì)有一個(gè) token ,服務(wù)器上運(yùn)行 gitlab-runner 后, runner 會(huì)輪詢(xún)的發(fā)送帶 token 的 http 請(qǐng)求給 gitlab ,如果 gitlab 有任務(wù)了,(一般是 git push ),那么會(huì)把任務(wù)信息返回給 runner ,然后 runner 就開(kāi)始調(diào)用注冊(cè)時(shí)選的 Executor 來(lái)執(zhí)行項(xiàng)目根目錄下的配置文件 .gitlab-ci.yml ,執(zhí)行后把結(jié)果反饋給 gitlab 。
此時(shí)我們可以編寫(xiě) .gitlab-ci.yml 腳本,比如設(shè)定當(dāng) test 分支發(fā)生 push 時(shí),自動(dòng)運(yùn)行測(cè)試用例、自動(dòng)構(gòu)建代碼、自動(dòng)將代碼更新到測(cè)試人員在測(cè)的環(huán)境等任何你想在提測(cè)時(shí)需要做的事情。當(dāng) merge 到 master 時(shí),自動(dòng)更新線上代碼完成上線等各種你想在上線時(shí)做的事情。
這里只要考慮的足夠全面,那么之后的項(xiàng)目開(kāi)發(fā)你只需要 push 到對(duì)應(yīng)的分支, gitlab-runner 會(huì)自動(dòng)完成你想做的所有構(gòu)建、提測(cè)、上線操作。減少重復(fù)工作,這就是持續(xù)集成的意義所在。
小程序的持續(xù)集成可以繼續(xù)使用 gitlab-ci 的方式,但由于小程序的構(gòu)建、提測(cè)、提交體驗(yàn)版等操作都需要依賴(lài)于 微信開(kāi)發(fā)者工具 ,而微信開(kāi)發(fā)者工具只有 Windows 和 Mac 版,所以我們需要一臺(tái) Windows 服務(wù)器來(lái)運(yùn)行 gitlab-runner 。
-
一臺(tái) Windows 服務(wù)器
-
一個(gè)權(quán)限為 Maintainer 的 gitlab 項(xiàng)目
在這臺(tái) Windows 服務(wù)器上安裝以下軟件
-
Git
-
Node.js
-
微信開(kāi)發(fā)者工具
-
首先下載 gitlab-runner
https://docs.gitlab.com/runner/install/windows.html
下載完成后將其移動(dòng)到合適的路徑后重命名為 gitlab-runner.exe
-
在 Windows 服務(wù)器中打開(kāi) powershell 并進(jìn)入 gitlab-runner.exe 所在目錄,然后執(zhí)行以下命令
.\gitlab-runner.exe register
-
Please enter the gitlab-ci coordinator URL
打開(kāi)想要設(shè)置 CI 的 gitlab 項(xiàng)目,進(jìn)入頁(yè)面 settings > CI/CD > Runners > Expand ,找到 Set up a specific Runner manually ,輸入 Specify the following URL during the Runner setup: 下的地址
-
Please enter the gitlab-ci token for this runner
輸入 Use the following registration token during setup: 下的token字符串
-
Please enter the gitlab-ci description for this runner
輸入一個(gè)描述
-
Please enter the gitlab-ci tags for this runner
輸入一個(gè)標(biāo)簽,該標(biāo)簽對(duì)應(yīng)該runner
-
Please enter the executor
這里輸入 shell 就好
此時(shí)刷新 gitlab 頁(yè)面會(huì)新增一個(gè) gitlab-runner
-
執(zhí)行命令 install
.\gitlab-runner.exe install
-
執(zhí)行命令 start
.\gitlab-runner.exe start
此時(shí)刷新 gitlab 頁(yè)面,之前的 gitlab-runner 會(huì)更新為以下?tīng)顟B(tài),表示 gitlab-runner 配置完成,已經(jīng)可以開(kāi)始工作。
由于 gitlab-runner 服務(wù)默認(rèn)登錄賬號(hào)為 authority\system ,而這個(gè)賬號(hào)在執(zhí)行微信開(kāi)發(fā)者工具命令行時(shí)會(huì)出現(xiàn)報(bào)錯(cuò),所以我們需要更改 gitlab-runner 服務(wù)的登錄賬號(hào)為正確賬號(hào)并重啟該服務(wù)。
右擊計(jì)算機(jī) -> 管理 -> 服務(wù)和應(yīng)用程序 -> 服務(wù)
找到 gitlab-runner 服務(wù)
右擊 gitlab-runner -> 屬性 -> 登錄 -> 此賬號(hào) -> 輸入可以正確使用微信開(kāi)發(fā)者工具命令行的賬號(hào)和密碼 -> 確定 -> 重啟動(dòng)此服務(wù)
修改完成后賬號(hào)會(huì)正確被更改
5. 配置微信開(kāi)發(fā)者工具
-
使用你的微信賬號(hào)登錄開(kāi)發(fā)者工具
-
設(shè)置 -> 安全 -> 服務(wù)端口 -> 開(kāi)啟
6. 配置.gitlab-ci.yml
在項(xiàng)目根目錄創(chuàng)建 .gitlab-ci.yml 文件,并填寫(xiě)以下配置。
stages: # 定義階段用于執(zhí)行任務(wù)
- build
- deploy
build_job: # 定義 build 任務(wù),名稱(chēng)可以隨意命名,只是為了方便理解和區(qū)分
stage: build # 該任務(wù)屬于 build 階段,要嚴(yán)格與stages中定義的命名一致
only:
- master
tags: # tags 指定運(yùn)行在哪個(gè) Runner 上,這里需要在我們剛注冊(cè)的 Runner 運(yùn)行,和注冊(cè)時(shí)的 mp_win7 匹配
- mp_win7
before_script: # 執(zhí)行script之前的鉤子
- whoami
script: # 執(zhí)行下面腳本,這里可以自定義配置您的構(gòu)建任務(wù)
- echo "build" # 可以在這里執(zhí)行您項(xiàng)目的構(gòu)建編譯操作
deploy_job: # 定義 deploy 任務(wù),名稱(chēng)可以隨意命名,只是為了方便理解和區(qū)分
stage: deploy # 該任務(wù)屬于 deploy 階段
only:
- master
tags: # tags 指定運(yùn)行在哪個(gè) Runner 上,這里需要在我們剛注冊(cè)的 Runner 運(yùn)行,和注冊(cè)時(shí)的 mp_win7 匹配
- mp_win7
script: # 執(zhí)行下面腳本,這里可以自定義配置您的部署任務(wù)
- C:\software\wechatDevTool\cli.bat -u 0.1.0@"$PWD" --upload-desc 最新的描述 # 這里使用微信開(kāi)發(fā)者工具提供的命令行工具進(jìn)行上傳體驗(yàn)版操作
修改完成后將代碼 push 到遠(yuǎn)程倉(cāng)庫(kù),會(huì)自動(dòng)觸發(fā)CI任務(wù)。
此時(shí)登錄微信小程序官網(wǎng)后臺(tái),就可以看到剛剛 push 代碼時(shí)由 gitlab-ci 自動(dòng)上傳的體驗(yàn)版了。
以下為本人最近在做的 360瞭望臺(tái)小程序的持續(xù)集成方案,您可以根據(jù)自己的需要加以改進(jìn),并完成屬于你的持續(xù)集成方案。
-
由于編寫(xiě) .gitlab-ci.yml 時(shí)需要用到微信開(kāi)發(fā)者工具的命令行,所以為了便于團(tuán)隊(duì)成員使用,我開(kāi)發(fā)了一個(gè) node.js 腳本,并發(fā)布為 npm 模塊,用于在 .gitlab-ci.yml 調(diào)用 Windows 虛擬機(jī)中的上傳命令。
-
約定團(tuán)隊(duì)開(kāi)發(fā)流程,開(kāi)發(fā)新需求時(shí)創(chuàng)建 feature/0.5.1 (需求版本號(hào)) 分支,當(dāng) push 代碼時(shí)會(huì)自動(dòng)觸發(fā) CI 任務(wù),并在虛擬機(jī)修改為 test 環(huán)境后提交體驗(yàn)版。
-
發(fā)完測(cè)試報(bào)告后可以將小程序提審時(shí),我們需要將 feature/0.5.1 分支 merge 到 audit 分支,此時(shí)會(huì)自動(dòng)觸發(fā) CI 任務(wù),并在虛擬機(jī)修改為 production 環(huán)境后提交體驗(yàn)版。 audit 分支需要添加為受保護(hù)的分支,不允許直接 push 代碼,如果審核沒(méi)通過(guò)那么可以以 audit 為基礎(chǔ)新建 feature/0.5.2 分支進(jìn)行調(diào)整后重新 merge 到 audit 。
-
當(dāng)審核通過(guò)后我們需要將 audit 分支代碼合并到 master 分支, master 分支應(yīng)該永遠(yuǎn)與線上代碼保持同步。
相關(guān)案例查看更多
相關(guān)閱讀
- 河南小程序制作
- 小程序
- 云南網(wǎng)站建設(shè)招商
- 云南網(wǎng)絡(luò)營(yíng)銷(xiāo)
- 買(mǎi)小程序被騙
- 汽車(chē)拆解管理軟件
- 搜索排名
- 百度小程序公司
- 云南網(wǎng)站建設(shè)百度
- 電商網(wǎng)站建設(shè)
- 開(kāi)通微信小程序被騙
- 昆明網(wǎng)站建設(shè)公司
- web學(xué)習(xí)路線
- 小程序定制開(kāi)發(fā)
- 云南小程序開(kāi)發(fā)制作公司
- 云南省建設(shè)廳網(wǎng)站
- 網(wǎng)站建設(shè)特性
- 網(wǎng)站開(kāi)發(fā)哪家好
- 云南網(wǎng)站建設(shè)制作
- 搜索引擎優(yōu)化
- 汽車(chē)報(bào)廢回收軟件
- 網(wǎng)站優(yōu)化哪家好
- 汽車(chē)報(bào)廢系統(tǒng)
- 云南網(wǎng)站建設(shè)費(fèi)用
- 云南企業(yè)網(wǎng)站
- 百度小程序開(kāi)發(fā)公司
- 云南微信小程序開(kāi)發(fā)
- 百度推廣
- 網(wǎng)站建設(shè)優(yōu)化
- 搜索引擎自然排名