jenkinis配置
在之前的博文中,博主已經搭建好了gitlab和jenkins環境。接下來,博主就要進行gitlab和jenkins的聯合使用。
源碼倉庫配置
這里,我們需要配置一下gitlab中代碼的倉庫地址和gitlab用戶的credentials認證方式,博主這里使用的username/password方式。
jenkins安裝Gitlab Hook Plugin 和 GitLab Plugin
如圖片所示,在available選項卡中搜索需要安裝的插件即可。插件安裝完之后,觸發構建的選項中就會多出Build when a change is pushed to GitLab這一項。
jenkins安裝maven插件
跟上一個步驟相同,這里我們需要進行安裝maven插件。安裝完之后,我們就可以進行創建maven項目的構建任務。
jenkins安裝maven
jenkins鏡像使用的linux發行版本是debain,用下面的指令就可以查看。
此時,我們先在外部的容器卷中編寫source,list文件,然后覆蓋容器內部的source.list文件。source.list是apt工具的鏡像源文件,文件內容如下所示:
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
然后,我們用root賬號進入jenkins運行容器,使用默認的jenkins用戶沒有權限進行安裝和修改操作。
docker exec -it -u root container_id bin/bash
接着,更新鏡像源。
apt-get update
最后,進行maven工具的安裝。
apt-get install maven
全局參數配置
配置觸發構建的時機
- Trigger builds remotely (e.g., from scripts),通過腳本遠程觸發,如http調用。
- build after other projects are built,其它依賴的項目構建時,觸發構建。
- build periodically,周期性構建,不管依賴是否發生變化
- poll scm,隔一段時間比較源碼是否發生變化,如果變更了則更新。
- Build when a change is pushed to GitLab. 基於gitlab的webhoos進行構建。
這里我們使用gitlab的webhooks進行構建,個人感覺webhooks的方式更加高效,因為gitlab接收到我們的代碼推送請求后,會生成一個推送事件,然后使用http請求來調用jenkins的對應任務的構建。
還是在Build Triggers 這塊區域,我們選擇Advanced進行高級選項配置,然后生成當前構建任務的訪問token。
gitlab配置webhooks
在gitlab項目的配置頁面,填寫上一個步驟得到的webhook url 和 token,添加成功之后就可以在右下角中查看到已添加的webhooks。
在右下腳的webhooks區域,我們可以點擊發送Test發送測試請求,如果配置成功的話,可以在界面上看到如下圖所示的提示。
查看jenkins構建記錄
如下圖所示,jenkins成功接收到gitlab的推送請求,然后進行了任務的構建。
博主微信公眾號
