Jenkins+Git+Gitlab 實現web服務持續集成部署

Jenkins安裝和啓動

官網下載以後,執行:html

  • 手動啓動: java -jar jenkins.warjava

  • 後臺啓動(默認端口): nohup java -jar jenkins.war &git

  • 後臺啓動(指定端口): nohup java -jar jenkins.war -httpPort=8888 &web

  • 後臺啓動(HTTPS): nohup java -jar jenkins.war -httpsPort=8888 &shell

Jenkins插件安裝

操做: Manage Jenkins -> Manage Plugins -> Available -> Search -> Click to install,以下圖所示:
image
image服務器

Jenkins系統設置

操做: Manage Jenkins -> Configure Systemssh

  • Jenkins Location設置,以下圖所示:
    imagegitlab

  • Extended E-mail Notification(郵件通知插件)設置,以下圖所示:
    imagegradle

  • Publish over SSH(ssh部署插件)設置,以下圖所示:
    imageui

Jenkins構建方式

Jenkins支持多種構建方式,包括:

  • 觸發式構建(Build when a change is pushed to GitLab):開發push代碼或者合併代碼到gitlab項目的master分支,jenkins就部署代碼到對應服務器。

  • 參數化構建:開發push代碼或者合併代碼到gitlab項目的非master分支以後,並不會部署代碼,而是須要登陸到jenkins的web界面,點擊構建按鈕,傳入對應的參數(好比須要構建的分支,須要部署的服務器)而後纔會部署。

  • 按期進行構建(Build periodically),定時器使用示例以下:

H(25-30) 18 1-5: 工做日下午6點25到30分之間進行build

H 23 1-5:工做日每晚23:00至23:59之間的某一時刻進行build

H(0-29)/15 :前半小時內每隔15分鐘進行build(開始時間不肯定)

H/20 :每隔20分鐘進行build(開始時間不肯定)

  • 按期檢測代碼更新,若有更新則進行構建(Poll SCM)

Jenkins構建和部署

觸發式構建

  1. 建立一個觸發構建的項目,選擇自由軟件風格
    image

  2. 源碼管理選擇git,在repository url中輸入git倉庫地址和要監聽的分支
    image

  3. 構建觸發器選擇Build when a change is pushed to GitLab,,將GitLab CI Service URL添加到gitlab項目的webhook,每次提交或合併代碼將會自動觸發構建
    iamge

  4. 構建,選擇execute shell,執行gradle腳本
    image

  5. 部署,選擇send files or execute commands over ssh,添加要部署的服務器及執行部署腳本
    iamge

  6. 構建後處理,選擇editale email notification發送郵件通知
    iamge

參數化構建

  1. 建立一個構建項目,選擇自由軟件風格
    image

  2. 選擇構建的參數:這裏設置一個GitBranch參數,一個選擇服務器
    iamge

  3. 構建,選擇execute shell,執行gradle腳本
    iamge

  4. 部署,選擇send files or execute commands over ssh,添加要部署的服務器及執行部署腳本
    image

  5. 選擇建立的job執行構建
    iamge

相關文章
相關標籤/搜索