1. 程式人生 > >Gogs-Windows Server下配合Jenkins自動化發布

Gogs-Windows Server下配合Jenkins自動化發布

下一步 ranch 你在 真的是 http hook tar attach 記得

一、先決條件

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安裝後是英文的,不是英文或者喜歡英文的請略過這節。

中文化步驟為:

  1. 安裝插件:Manage Jenkins -> Manage Plugins -> Available -> Filter中輸入Locale -> 勾選後點擊Install without restart
  2. 設置中文: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自動化發布