私事で恐縮ですが、先日、ダーツの合同ハウストーナメント(複数の店舗で開催されるダーツの試合)に参加させてもらって、なんと優勝してきました!
まさかの展開で驚いているシラッチです。(いぇーい😄)
前回のブログで、大阪開発ではダーツが流行っていることをお伝えして、『DartsDrive(仮)』の進捗報告をさせて頂いていましたが…サスペンドしております!😅
…何故か?
会社に家庭用ダーツボード「DARTSLIVE-200S」が導入されたからです!(爆)
おかげで練習が捗ります!!右肘を痛めるくらいに…(あかん)
さて、というわけで(?)ダーツはコレくらいにしておいて、今回は開発業務の工程を自動化の一部を紹介したいと思います。
(というか自分の備忘録デス…😂)
担当のプロジェクトで、CI として Jenkins を導入しているのですが、
開発のワークフローを構築してく中で「Jenkinsに登録されているジョブを、Jenkinsの外部の環境から実行したい」ということがありました。
Jenkinsに触るのが久しぶりだったのでいろいろ調べていたのですが
正攻法では Jenkins CLI を使う方法、
その他に wget や curl を使用して、リモートからのビルドを実現されている記事を見つけました。
ただ…回り回って、動かしたい環境の都合で Python2.7 でスクリプトを作成することにしました。😅
まずはJenkinsのトップページから、「Jenkinsの管理」を選択します。
管理画面から「ユーザーの管理」を選択、ログインを想定しているユーザーのページを開き、「設定」から「ユーザーID」と「APIトークン」を表示させて確認します。
次にリモートで実行したいジョブの設定画面を開き、「ビルド・トリガ」の「リモートからビルド (例: スクリプトから)」にチェックを入れて、任意の認証トークンを設定します。
あとは以下のようにスクリプトを用意して、好きなタイミング、トリガーで実行するとジョブのビルドが行われます。
# -*- coding:utf-8 -*-
import sys
import urllib2, base64
JENKINS_URL = <Jenkins の URL を記述します>
JENKINS_USER = <設定画面で確認したユーザーID>
JENKINS_TOKEN = <設定画面で確認したAPIトークン>
JOB_TOKEN = 'sample_job_token' # ジョブの認証トークン
# URLは[jenkins]/job/[ジョブ名]/build?token=[認証トークン]
url = '%s/job/SampleJob/build?token=%s' % (JENKINS_URL, JOB_TOKEN)
# 設定画面で表示されたユーザID、APIトークンでベーシック認証
username = JENKINS_USER
password = JENKINS_TOKEN
request = urllib2.Request(url)
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
塵積かもですが、細かい自動化、効率化を進めていってチーム全体がクリエイティブに使える時間をどんどん増やしていきたいですね。😄
それではまたー🖐