如何觸發Jenkins構建任務

定期構建 vs 輪詢SCM

點擊配置
在這裏插入圖片描述

在這裏插入圖片描述
查看構建觸發器章節,查看定時構建和輪詢和SCM兩種方式觸發項目構建。

定時構建

定時構建就是無論怎樣,一個週期觸發一次構建。這種方式會導致大量計算資源浪費。會導致jenkins負載線性增高。

輪詢SCM

一種更好的方式是讓jenkins輪詢git遠程倉庫,這裏的日程表就是配置輪詢的頻率。下圖是每10分鐘(這種方式我也無法理解)輪詢一次,假如遠程倉庫有最新提交,構建任務纔會觸發。一般使用正規語法,後面會講。
在這裏插入圖片描述

輪詢語法

# 分鐘 小時 每月幾號 月份 每週周幾
MINUTE HOUR DOM MONTH DOW

*代表匹配任何值,比如* * * * *是分鐘輪詢一次。

  • MINUTE 分鐘 (0–59)
  • HOUR 小時(0–23)
  • DOM(day of the month) 每月幾號 (1–31)
  • MONTH 月份 (1–12)
  • DOW(day of week) 周幾 (0–7) 其中 0 和 7 是星期天.

有些騷一點的語法,可以嘗試下:

  1. 表示範圍
    比如DOW字段可以使用1-5代表除了週末。

  2. 間隔
    MINUTE字段*/5代表每隔5分鐘。

  3. 快捷特殊值

“@yearly”, “@annually”, “@monthly”, “@weekly”,
“@daily”, “@midnight”, and “@hourly”.

手動觸發

手動觸發就是你發送一條http請求就可以觸發項目構建了。

  1. 首先要知道管理員的賬號密碼,然後在這裏設置token
    在這裏插入圖片描述
  2. 然後使用curl和get請求jenkins的http接口
  • 使用腳本請求
    這裏是鄙人的小腳本,怎麼使用的呢?
    第一個參數傳你的項目名,第二參數傳token,第三個參數傳用戶賬號和密碼,用:隔開。比如:
bash manual-remote-trigger.sh simpe-proof oneslide oneslide:icywater

腳本內容如下:

function check_curl(){
  curl --version > /dev/null
  if test $? -ne 0
  then
    echo "you need curl installed"
    return 1
  fi
}

check_curl
if [ $? -eq 1 ]
then
   exit 1
fi

PROJECT_NAME=$1
JENKINS_URL=http://192.168.3.213:8080
PROJECT_BUILD_PATH=job/$PROJECT_NAME/build

echo "request url:" $JENKINS_URL/$PROJECT_BUILD_PATH 

if [ ! -z $2 ]
then
 echo "using token" 
 curl -u $3 $JENKINS_URL/$PROJECT_BUILD_PATH?token=$2
else
 curl $JENKINS_URL/$PROJECT_BUILD_PATH
fi
  • 直接請求
    擺脫一切花裏胡哨,直接請求也可以:
curl -u username:password \
$jenkins_url/job/$project_name/build?token=$token
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章