デスマから開放されたので、Jenkinsの環境を構築してみた。
Jenkins。1ヵ月前に勉強会に参加してから1、2日ほど色々検証していたが(ほとんど環境構築に時間を割いたが)、直後デスマーチが始まったので全然触っていませんでした。
今回は長年の夢。自動デプロイを試してみた。
あと、今回やることなんですけど。gitlabは運用中。jenkinsはインストール済み。で、この2つは同じサーバ。またセキュリティのことはガン無視(公開しているサーバではないので)の連携のためのログです。
本当だったら、gitlabにjenkins用のユーザー作成したり、ssh認証鍵なんて作らないといけないと思いますので、ほどほどの参考でおなしゃすm(_ _ )m
環境
- CentOS 7
$ cat /etc/redhat-release CentOS Linux release 7.1.1503 (Core)
- Jenkins
$ cat /var/lib/jenkins/config.xml <?xml version='1.0' encoding='UTF-8'?> <hudson> <disabledAdministrativeMonitors/> <version>1.613</version> ~ 省略 ~
- GitLab 7.10.4 337225a
Jenkins側
Jenkinsに必要なプラグインをインストール
試しにJob作って実行してみる
(;・∀・)ハッ?
できちゃったよおい。
最初だから失敗するノリで実行しましたが、できちゃったよ。すげぇ。めっちゃ簡単じゃん。(ここまで15分)
でも目標はgit push
でhookしてもらうことなので、まだまだ続く。
Gitlab側
では、hookの設定を進めます。
hookも簡単です。あるプロジェクトのこのページに設定するだけ。
しかし、ここで問題が・・・。
(;・∀・)どのURLを設定すれば良いのか・・・・・?
まぁでもぐぐったらみつかりました。
どうやらこんなURLをGETすればいいらしい。
んで、hookに設定して、テスト実行。
キタ━━━━(゚∀゚)━━━━!!
すごい!すばらしい!!Excellent!!!
んで、このままの設定だとまだまだ
今回master
ブランチだけでしか検証していませんが、どうやらすべてのpush
でビルドが発生するようです(´Д`;
gitlabのhookでtag付のpush
とか、レビュー後のプルリクとかでhookすればなんとか回避できるのかなと思うけど、それでもやっぱり特定のブランチにpushしたときだけが望ましいと思う。
ということで探してきました。「Run Condition Plugin」
このプラグインを使うと、Jenkinsをキックするときのパラメータをパースして、特定のブランチにpushした時を判別することができるとか。
早速インストールして試して見ましたが、、、、
(´ヘ`;)ウーム…
ほしい項目がでてこない。「プロジェクト」 => 「設定」 => 「ビルド手順の追加」 で「Conditional step (single)」の項目がでてこないお(^ω^ = ^ω^)
で、ここでパラメータを正規表現で取得して、特定のブランチのpushであればってことができる(らしい)
ここで詰まったので続きはまた次回
まとめ
ハマるだろうな。の体で挑んだわりには、サクサクできたので楽しかった。
jenkins。ものにしたい。