用node.js寫一個jenkins發版指令碼
阿新 • • 發佈:2018-11-08
背景
每次到網頁裡手動發版有點煩,寫個指令碼來提高開發效率。
CFG
在 jenkins 設定裡獲取 API TOKEN
。
把 host 和賬號密碼拼接起來就可以通過鑑權。
const token = {
user: '',
password: '',
}
const host = 'jenkins.xxx.cn';
const basicUrl = `http://${token.user}:${token.password}@${host}`;
BUILD
呼叫 jenkins 提供的 jenkins.job.build()
方法發版。
// crumbIssuer 預設false, true 啟用CSRF保護支援 const jenkins = require('jenkins')({ baseUrl, crumbIssuer: true }); const job_name = ''; // 想要發版的job的名字 jenkins.job.build( { name: job_name, parameters: { name: 'value', // 填寫一些引數資訊 } }, function(err, data) { if (err) throw err; console.log('queue item number', data); });
檢視發版狀態
執行 build 之後我們想要檢視當前 build 的狀態,只成功、失敗還是進行中。
jenkins.job.get()
獲取當前 job 的資訊。data.lastBuild.number
可以拿到最後一個 build 的 number,最後一個 build 也就是我們剛剛觸發的 build。
jenkins.build.get()
獲取當前 build 的資訊。data.result
獲取當前 build 的結果
jenkins.job.get(job_name, (err, data) => { if (err) throw err; const lastBuildNumber = data.lastBuild.number; console.log('last build number', lastBuildNumber); jenkins.build.get(job_name, lastBuildNumber, (err, data) => { if (err) throw err; console.log('last build result', data.result); }) });