CI/CD
持續集成/持續部署,這概念有段時間了,網上有很多八股文,我就不寫了。我只說它可以替你做到什么程度:當你需要更新一個版本,只需通過git把代碼提交到指定的倉庫,然后就可以自動打包、構建鏡像、發布、運行。在這幾個步驟前后,你還可以通過shell腳本或者其他類似的方法來更好的控制每一個環節。從我角度來看,只是簡單應用的話,它其實並不復雜。.net同學們,希望你們考慮在項目中用到它,至少它可以解放手動部署那部分時間。
准備工作
1、准備一個.NET6項目(Core也行):
2、准備一個gitee倉庫
3、准備一台服務器(非必要,但建議)
安裝Jenkins
首先在docker中運行這段代碼(代碼來自官網,端口可以自由定義):
docker run \ -u root \ --rm \ 這項意思是:只要停止運行就刪掉這個容器,如果你不需要可以刪除 -d \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean
沒有提前下載鏡像也沒關系,因為它會自動下載。如下:
接下來訪問(如果是雲服務器要放通端口訪問),短暫等待后會進入這個頁面:
Jenkins首次啟動會初始化系統,並且生成一個管理員賬戶,但是密碼是輸出到日志里的。你可以轉到這個目錄查看,或者看容器日志:
docker logs [容器id/name]
密碼在兩行星號中間:
粘貼到剛才的頁面點確認,跳入插件下載頁,這里有兩個選項:推薦安裝、自定義安裝,任選一個:
再然后進入賬戶設置頁面,可以跳過但不推薦,我建議設置新的:
最后,設置地址:
配置Gitee
因為Jenkins默認不支持Gitee,所以要下載對應插件,按圖找到插件管理,搜索Gitee並下載:
下載成功以后,進入系統設置,會出現Gitee相關配置項,填充即可:
需要注意這里的證書。點擊添加,選擇“Gitee API token”:
這里的APIV5 token,登錄gitee賬戶,設置→私人令牌,生成一個新的就好。
添加好以后,選擇證書並點擊測試:
看到成功字樣,保存退出。
新建工作流
接下來,新建一個“Freestyle”任務。
然后,在當前工作流的“源碼管理”這一頁,選擇Git,輸入你倉庫的地址:
這里會報錯很正常,因為沒有配置賬戶密碼。點擊新增,選擇“賬戶密碼”種類,保存退出后選中它。正常情況下就像這樣,不會出紅色字體:
然后在下面設置分支,這一項決定Jenkins拉取哪個分支的代碼(如果不寫就是任意分支):
往下找到“構建觸發器”,選擇箭頭所指項(webhook url先拷貝一下):
選中后會多出很多選項,暫時不用理會,只需要找到下面這一項,並生成一個:
這時候登錄你的Gitee,找到准備好的倉庫,找到管理→webhooks→新建,選擇push和激活,填入復制好的webhook url和webhook token,確認添加:
正常情況下,測試請求是200:
回到Jenkins后台,測試觸發器是否可以正常工作。構建前工作區是空的,點擊“Build Now”手動觸發構建:
再看工作區,已經把倉庫代碼拖下來了。並且在“構建歷史”可以看到剛才的記錄:
打開VS2022,提交代碼到Gitee(你也可以用命令行):
回到Jenkins后台,構建歷史中多了一條記錄:
進去查看控制台輸出:
是剛才提交的修改沒錯了。自動構建Get~
下一步是根據代碼中的Dockerfile自動打包鏡像,我會繼續發文的。