中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Gitlab+Jenkins+Pipeline+WebHook+Multibranch-實現持續集成

發布時間:2020-08-10 21:15:15 來源:網絡 閱讀:761 作者:秋也 欄目:系統運維

[Gitlab + Jenkins + Pipeline + WebHook+ Multibranch] - 實現持續集成和自動發布

本文的實現:

  • 代碼提交gitlab,自動觸發Jenkins構建
  • gitlab開發分支merge后自動發布到dev環境
  • gitlab master分支merge后自動構建,需手動更新prod環境

    1. Jenkins準備工作
    2. Jenkinsfile準備工作
    3. Gitlab準備工作
    4. 選擇Jenkins任務的觸發方式
    5. 驗證

Jenkins準備工作

  • 安裝插件
    1. gitlab
    2. pipeline
  • 配置Gitlab的連接
    1. 打開系統管理 - 系統設置 - gitlab
    2. 去掉此選項的勾選Enable authentication for '/project' end-point
    3. 配置GitLab connections
    4. 設置Connection nameGitlab host URL
    5. Credentials的配置
      1. 添加Jenkins憑據
      2. 類型選擇Gitlab API token
      3. API token的獲取
        1. 在Gitlab上擁有一個用戶并具有developer角色
        2. 獲取方法:登錄用戶 - User settings - Access Tokens,創建一個Token記錄
      4. 復制Token值并保存到Jenkins的憑據中
      5. 點擊下面的Test Connection測試
        1. 成功會提示Success
        2. 如果失敗檢查gitlab的url地址是否正確
  • 配置多分支流水線任務
    1. 新建任務,選擇多分支流水線
    2. 配置任務
    3. 添加一個倉庫,類型選Git
    4. Credentials的配置
      1. 添加Jenkins憑據
      2. 類型選擇Username with Password
      3. 用戶的獲取
        1. 在Gitlab上擁有一個用戶并具有developer角色
        2. 如果你的項目類型屬于Private,這個用戶必須是這個項目的成員
    5. 其他默認讀取根目錄下的Jenkinsfile文件

Jenkinsfile準備工作

參考 Jenkinsfile Demo

主要配置:

// 獲取gitlab connection, 填寫我們之前配置gitlab connection
properties([gitLabConnection('gitlab-bigdata')])
// 拉取代碼
checkout scm
// 告訴gitlab job狀態
updateGitlabCommitStatus name: 'build', state: 'pending'
// 根據不同的分支觸發不同的步驟
if (env.BRANCH_NAME == 'master' || env.BRANCH_NAME == 'dev' ) {
        stage("Build Docker Image"){
            echo "build docker image"
            echo "Only dev/master branch can build docker image"
        }

        if(env.BRANCH_NAME == 'dev'){
            stage("Deploy to test"){
                echo "branch dev to deploy to environment test"
            }

            stage("Integration test"){
                echo "test環境集成測試"
            }

        }

        if(env.BRANCH_NAME == 'master'){
            stage("Deploy to prod"){
                echo "branch master to deploy to environment prod"
            }

            stage("Health check"){
                echo "prod檢查"
            }

        }
    }

Gitlab準備工作

  • 修改默認的安全請求
    1. 注意: 當Jenkins和Gitlab在同一臺機器時
    2. 使用root登錄,管理中心 - 設置 - 網絡 - 外發請求(Admin Area - settings - Network - Outbound requests)
    3. 加上此選項的勾選Allow requests to the local network from hooks and services, 保存

選擇Jenkins任務的觸發方式

  • 手動觸發
  • 定時觸發
  • Gitlab trigger

    1. 進入項目,Settings - Integrations
    2. 填寫Jenkins任務的地址,選中Push eventsMerge request events
    3. Jenkins url格式:http://JENKINS_URL/project/PROJECT_NAME
    When you configure the plugin to trigger your Jenkins job, by following the instructions below depending on job type, it will listen on a dedicated URL for JSON POSTs from GitLab's webhooks. That URL always takes the form http://JENKINS_URL/project/PROJECT_NAME, or http://JENKINS_URL/project/FOLDER/PROJECT_NAME if the project is inside a folder in Jenkins. You should not be using http://JENKINS_URL/job/PROJECT_NAME/build or http://JENKINS_URL/job/gitlab-plugin/buildWithParameters, as this will bypass the plugin completely.

驗證

  1. 提交代碼
  2. 查看狀態 - 進入項目
    1. WebHook狀態
      1. 依次點擊Settings - Integrations
      2. 編輯觸發Jenkins的那條記錄
      3. 查看Recent Deliveries部分,顯示了最近的Trigger狀態
    2. Pipelines狀態
    3. Jenkins Job狀態
  3. 成功狀態
    1. WebHook狀態 - 200
    2. Pipelines狀態 - passed
    3. Jenkins Job狀態 - 成功

感謝

  • CI/CD之Gitlab集成Jenkins多分支pipeline實現質量檢測和自動發布
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

九龙县| 桃园市| 东平县| 鄢陵县| 含山县| 当阳市| 卓尼县| 石嘴山市| 光泽县| 绍兴县| 同心县| 普兰县| 宁武县| 武威市| 敖汉旗| 图们市| 景东| 保德县| 武乡县| 新密市| 合作市| 新和县| 凤山市| 库尔勒市| 宁晋县| 图片| 炉霍县| 壤塘县| 河源市| 温州市| 改则县| 麻城市| 西丰县| 南宫市| 蓬溪县| 闽清县| 道真| 社旗县| 凤城市| 威远县| 平谷区|