用node.js寫一個jenkins發版腳本

背景

每次到網頁裏手動發版有點煩,寫個腳原本提升開發效率。javascript

CFG

在 jenkins 設置裏獲取 API TOKEN。 把 host 和帳號密碼拼接起來就能夠經過鑑權。java

const token = {
  user: '',
  password: '',
}

const host = 'jenkins.xxx.cn';
const basicUrl = `http://${token.user}:${token.password}@${host}`;
複製代碼

BUILD

調用 jenkins 提供的 jenkins.job.build() 方法發版。npm

// 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 的狀態,只成功、失敗仍是進行中。ui

jenkins.job.get() 獲取當前 job 的信息。data.lastBuild.number 能夠拿到最後一個 build 的 number,最後一個 build 也就是咱們剛剛觸發的 build。 jenkins.build.get() 獲取當前 build 的信息。data.result 獲取當前 build 的結果spa

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);
  })
});
複製代碼

資料

jenkinscode

相關文章
相關標籤/搜索