Linux下配置Jenkins+gitlab持續集成構建流程

本文將簡單介紹如何在Linux下配置Jenkins+gitlab持續集成構建流程java

目標:

  1. 能構建成功併發布到測試環境
  2. gitlab推指定分支代碼能夠觸發構建
  3. 設置開發者郵箱通知

流程

  1. linux基礎
  2. 環境:java node jenkins git yarn 注意:全局環境變量的配置
  3. Jenkins 配置
  4. gitlab->webhook 配置
    • webhook: webhook插件容許你創建或設置GitLab上訂閱某些事件。當其中一個事件被觸發時,咱們將發送一個HTTP POST負載到webhook的配置URL。webhook能夠用來更新外部問題跟蹤器、觸發CI構建、更新備份鏡像,甚至部署到生產服務器。

linux基礎

  • 命令
    • pwd: 查看當前目錄
    • vi 目錄: 進入編輯該目錄
      • esc + : + q + !: 強制退出不保存
      • esc + : + w + q: 保存並退出
    • source /etc/profile: 修改後的/etc/profile文件當即生效
      • shift + g: 到達文件底部
      • mv 原名稱 新名稱: 重命名
    • yum命令

步驟

軟件安裝

wget

yum install wget
複製代碼

unzip

yum install unzip
複製代碼

nodejs

  • 查看Linux系統位數
uname -a
複製代碼

uname

  • 進入安裝目錄(/usr/local/src)node

  • 下載對應安裝包linux

wget https://nodejs.org/dist/v8.5.0/node-v8.5.0-linux-x64.tar.xz
複製代碼
  • 解壓並進入
tar -zxvf node-v8.5.0-linux-x64.tar.xz
複製代碼

z: 有gzip屬性的 x: 解壓 v: 顯示全部過程 f: 使用檔案名字,該參數只能放在最後 git

tarerror
出現如上錯誤說明這個壓縮包沒有用gzip格式壓縮,因此上述解壓命令去掉z就行

  • 配置全局變量
    • 編輯 /etc/profile文件
    • 在文件尾部添加以下代碼,保存並退出文件
export NODE_PATH=/usr/local/src/node-v8.5.0-linux-x64/bin
export PATH=$PATH:$NODE_PATH	
複製代碼
  • 檢驗是否配置爲全局變量
node -v
npm -v
複製代碼

yarn

npm install --global yarn@13.2
複製代碼

java

  1. 安裝
wget http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1521104652_72aaa3f990b00fe806f0156100c8c245
複製代碼
  1. 重命名
mv jdk-8u161-linux-x64.tar.gz?AuthParam=1521104652_72aaa3f990b00fe806f0156100c8c245  java-jdk.tar.gz 
複製代碼
  1. 解壓
tar xzf java-jdk.tar.gz
複製代碼
  1. 配置全局變量
export JAVA_HOME=/usr/local/jdk1.8.0_91
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
複製代碼

git

  • 下載,壓縮,進入目錄
wget https://github.com/git/git/archive/v1.7.1.zip
unzip v1.7.1.zip
cd git-1.7.1
複製代碼
  • 安裝須要的插件
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
複製代碼
  • 編譯, 安裝
make prefix=/usr/local/git all
make prefix=/usr/local/git install
複製代碼
  • 配置全局環境變量
    • 編輯/etc/profile
    • 文件尾部添加以下代碼,保存並退出文件
export PATH=/usr/local/git/bin:$PATH
複製代碼
  • 配置git
    • 設置user,生成ssh key
git config --global user.name "xxx"
git config --global user.email "mailto:xxx@gmail.com"
ssh-keygen -t rsa -C "mailto:qiubing.it@gmail.com"
複製代碼
  • 將上述生成的ssh key添加到gitlab
cat ~/.ssh/id_rsa.pub
複製代碼

複製內容,頭部加上ssh-rsagithub

Jenkins

wget http://updates.jenkins-ci.org/download/war/2.109/jenkins.war
複製代碼

Jenkins + gitlab 配置

Jenkins配置(1)===》推薦使用

  • 啓動Jenkins
nohup java -jar /root/app/jenkins.war --httpPort=8080 2>&1 &
複製代碼

&:當在前臺運行某個做業時,終端被該做業佔據;能夠在命令後面加上& 實現後臺運行 nohup: 當使用&命令後,做業被提交到後臺運行,當前控制檯沒有被佔用,可是一旦把當前控制檯關掉(退出帳戶時),做業就會中止運行。nohup命令能夠在用戶退出帳戶以後繼續運行相應的進程。 注: 1. 第一次啓動時須要輸入一個祕鑰(xshell中可看到) 2. 默認admin登陸的話密碼在.jenkins/secrets/initialAdminPassword文件裏(下次登陸使用) 3. 也能夠修改密碼web

  • 新建一個項目
    project
  • jenkins配置hookplugin
    • 安裝插件:系統管理 --> 管理插件 --> 可選插件 --> 選擇安裝 gitplugin,gitlab ,gitlab plugin,gitlab hook plugin, Build Authorization Token, gitlab Authorization
    • 項目配置
      • general: 填寫項目名稱
      • 源碼管理:
        code
      • 構建觸發器:
        cf
        • 正則過濾觸發分支
        • 記錄下url
        • 記錄下token
  • 寫打包命令
    cmd

Jenkins配置(2)===》不知如何選擇觸發分支

  • 隨機生成token
openssl rand -hex 12
複製代碼

會生成一串token,保存下來shell

  • 構建觸發器
    • 勾選‘觸發遠程構建(例如,使用腳本)’,在身份驗證令牌欄輸入隨機生成的token:上面保存的
      url
      • 記錄url
    • 勾選上‘gitlab hook trigger for gitScm polling’

gitlab配置

  • 添加ssh key
  • 配置webhook
    • 選擇項目 --> setting --> webhook
      webhook
    • 填寫上面保存的url
    • 填寫上面保存的token
    • 添加webhook
    • test(測試流程是否能跑通)
      test
      • 報錯403,未登陸啥的,解決方法就是將url的'http://'後面加上 用戶名:密碼 的形式
      • 報錯no valid crumb was included in th request,解決方法:進入jenkins系統管理 --> 全局安全配置 --> 取消選中:防止跨站點請求僞造

Jenkins郵箱通知配置

  • 系統管理 ---> 系統設置npm

    • 設置管理員郵件地址
      e1
    • Extended E-mail Notification
      e2
      • 未選中‘allow sending to unregistered users’報錯信息:
        e2error
      • 選中後:
        e2ok
    • 郵件通知
      e3
      • 能夠經過發送測試郵件看下是否成功
        etest
  • 項目設置安全

    • 增長構建後操做步驟,選擇E-mail Notification,Editable E-mail Notification
      add
    • E-mail Notification
      en
    • Editable E-mail Notification--->Advances Settings,添加Triggers
      ed1
相關文章
相關標籤/搜索