Gogs-Windows Server下配合Jenkins自動化發布
一、先決條件
Gogs、Git、JDK、Jenkins。準備好這些安裝包。
安裝順序是 Git -> Gogs -> JDK -> Jenkins
安裝Gogs和Git,可參考我這篇文章https://www.cnblogs.com/cluyun/p/10822992.html
我這裏只講解Jenkins部分。
Jenkins相關安裝包這裏下載:(推薦去官網下載,因為官網版本可能更新)
鏈接:https://pan.baidu.com/s/1KoqzGy83WrM9yfhHIQlDZw
提取碼:0set
二、安裝JDK
雙擊jdk-8u181-windows-x64.exe,然後下一步一步步直到完成。JDK的安裝路徑要知道。
開始配置環境變量:
屬性 -> 高級系統設置 -> 高級 環境變量 -> 系統變量 Path -> 編輯;在最後面加上這句,註意分號
;C:\Program Files\Java\jdk1.8.0_211\jre\bin;C:\Program Files\Java\jdk1.8.0_211\bin;
就是JDK中的bin和jre bin的路徑,看你自己的安裝目錄吧。我是默認的。
三、安裝Jenkins
解壓後雙擊jenkins.msi,下一步下一步直到完成。
打開http://localhost:8080/
找到提示中的路徑,用記事本打開文件,把其中的文字復制到這裏
插件安裝選擇推薦插件
插件安裝完成以後將會創建管理員賬戶
運行後截圖:
這個時候已經可以放到外網訪問了,記得開放8080端口。
四、Jenkins中文化
有些Jenkins安裝後是英文的,不是英文或者喜歡英文的請略過這節。
中文化步驟為:
- 安裝插件:Manage Jenkins -> Manage Plugins -> Available -> Filter中輸入Locale -> 勾選後點擊Install without restart
- 設置中文:Manage Jenkins -> Configure System -> Default Language 中輸入 zh_CN
五、配置Jenkins
系統管理 -> 插件管理 -> 可選插件 -> 過濾:gogs -> 直接安裝
安裝完了後可能要重啟,在網址根目錄輸入/restart進入點擊 是 即可重啟,如:http://localhost:8080/restart
開始配置Git
系統管理 -> 全局工具配置 -> 在Path to Git executable中輸入Git.exe在服務器中的路徑 -> 點擊保存
至此,配置完成。
六、在Gogs中建立項目並配置
先建立項目然後隨便放幾個文件進去
然後給Jenkins分配(註冊)一個專門的賬號,註:不要這個賬號也可以,反正就是要拿一個有權限的賬號給Jenkins
給予該項目的只讀權限。
添加web鉤子,含義:推送代碼後告訴Jenkins"幫我發布一下",然後Jenkins就會發布了,這比輪循好多了
推送地址的格式為:http(s)://<你的Jenkins地址>/gogs-webhook/?job=<你的Jenkins任務名>
添加完成之後,gogs這邊就完成了。
七、添加Jenkins自動化任務
在主界面點擊新建任務,輸入名字後確定,註:必須和web鉤子地址裏面的任務名稱一致
點擊確定後大概是這個樣子的,介紹一下這個界面:這是在任務界面中,在主界面點擊luyunDemo,即可到達這個界面。
立即構建就是可以理解為立即發布的意思。
點擊配置,如果在gogs中你沒有設置密鑰文本,那這裏可不填
點擊上圖的右下角高級,這個目錄是代碼發布後放到哪裏的意思。舉個例子,要是你發布前端代碼,托管在iis下,那你這個目錄寫iis站點的真實物理路徑即可實現自動化發布。
去源碼管理裏面設置git相關參數,寫成和我一樣的就行了。
稍微解釋下這幾個字段:
- Repository URL:倉庫克隆地址(我用的http,ssh好麻煩要配置)
- Credentials:git登錄賬號密碼,就用我上面建立的專門的賬號就好了
- Branch Specifier (blank for ‘any‘):需要構建的分支
- 源碼庫瀏覽器:選gogs就好了
然後點擊保存吧
進到任務裏面點擊立即構建試試代碼有沒有到指定路徑下
很明顯成功了嘛。如果失敗了Jenkins構建歷史應該就是紅色的點擊紅球球進去,查看日誌。可以看到詳細的錯誤信息。
八、自動化構建演示
首先我們把代碼克隆下來
然後做一些改動
用TortoiseGit提交到gogs上
提交完成後就看到Jenkins在自動構建了。無需任何操作。只要提交推送就好(我的圖不是假的哦~可以看時間,自動化發布真的是非常nice)
打開服務器中的目錄看看,發現已經成功了。棒棒棒
九、通過FTP發布到其他應用服務器
上面都是說構建到本地,我們來看看如何構建到其他服務器。(當然是用FTP最方便,或者你在那個服務器也裝一個Jenkins本地發布)
主頁面 -> 系統管理 -> 插件管理 -> 可選插件 -> 過濾:FTP -> 選擇下圖這個直接安裝
然後去配置吧,主界面 -> 系統管理 -> Publish over FTP -> 點擊新增
-
Name:起個名字,後面項目配置裏會用的到
-
HostName:FTP主機名(端口號默認21,在高級裏面可以改)
-
Username:FTP用戶名
-
Password:FTP密碼
保存後,去任務裏面,點擊配置。找到構建後操作->增加構建後操作步驟->Send build artifacts over FTP
-
Name:選擇全局配置裏的
-
Source files:選擇你的發布包路徑(這裏是相對於工作空間的路徑)
-
Remote directory:放到遠程的哪個路徑裏(這裏是相對於FTP根目錄的路徑)
配置完成後,點擊保存,構建即可!
十、構建基於.NET Framework的web程序
因為我們上傳到gogs(git)上的的項目一般都是沒有bin目錄什麽的,這時候就需要Jenkins去幫我們生成。
大致步驟是:Jenkins拉取代碼 -> Jenkins編譯生成項目 -> Jenkins傳到指定目錄去
這個需要安裝MSBuild插件,我暫時還沒有做這個,可以參考以下鏈接
https://www.cnblogs.com/huhubun/p/6345077.html
https://blog.csdn.net/sD7O95O/article/details/82504547
十一、構建基於.NET Core的web程序
同理,core項目我們也不會有bin目錄的。還是需要Jenkins自己去編譯生成,不過core方便多了,用命令行就可以了。
不用在Jenkins中裝插件了。這個我也暫時沒有實踐過,請參考以下鏈接:
https://www.cnblogs.com/liyouming/p/9283345.html
https://www.cnblogs.com/sunshine-wy/p/9860599.html
十二、在Gitee(碼雲)中構建
其實和gogs原理一樣,只不過安裝插件的時候安裝gitee插件
然後,web鉤子就是碼雲如下所示
參照上面gogs的構建方式即可實現從gitee構建。
終於寫完了,如果對你有幫助希望點個推薦,支持下博主。。
Gogs-Windows Server下配合Jenkins自動化發布