CentOSでgit・Jenkins・MkDocsを連動させる

さてさて、しばらくgitとjenkins連動やMkDocsを動かしたりとやってきましたが、今回でシリーズ最後になりますね。Web担当 神凪です。
今回はタイトルの通り、3パッケージを連動させてHTMLファイルを自動公開するところまでを狙っていきます。

目標

  • JenkinsによるMkDocs連動を実装する
    • MkDocsに限らず、pandocあたりでもビルドできるようになるはず!

構築後環境

  • CentOS7.4
  • Apache 2.4.6
  • git version 1.8.3.1
  • mkdocs version 0.16.3
  • Jenkins ver. 2.73.1

準備

設定値はすべて上記記事のものを踏襲します。

手順

gitプラグインのインストール

Jenkins用にgitプラグインをインストールします。

  1. Jenkinsにログオンする。
  2. [Jenkinsの管理 => プラグインの管理]と進み、[利用可能]タブを表示する。
  3. “Git Plugin”を選択し、[ダウンロードして再起動後にインストール]を選択する。
  4. “インストール完了後、ジョブがなければJenkinsを再起動する”にチェックを入れる

もし3の段階でGit Pluginがない場合、[インストール済み]タブを確認してみてください。
こちらに表示されているのであればインストールは完了しています。

更新用シェルスクリプトの作成と下準備

Jenkinsから実行させるためのスクリプトを準備します。
また、[CentOSでgitとmkdocsを連携させる]で準備した連動から実行アカウントが変更になるため、下準備も行います。

スクリプトの作成

vi /opt/git/MakeRepo.sh

以下の内容で新規作成します。

#/bin/sh
WORK_DIR=/work
BUILD_DIR=/work/$1/docs

echo "check dir:"$1

 if [ -e $WORK_DIR/$1 ]; then
        cd $WORK_DIR/$1
        git pull
 else
        cd $WORK_DIR
        git clone /opt/git/$1.git
        cd $WORK_DIR/$1
 fi

mkdocs build

スクリプトに実行権限付与

chmod +x /opt/git/MakeRepo.sh

下準備

ディレクトリや権限の準備です。

rm -rf /var/www/html/*
chmod 777 /var/www/html

mkdir /work
chmod 777 /work

ごちゃごちゃ残るのが気になったので、一度きれいにしています。
以上で下準備が終わりです。

新規ジョブの作成

  1. Jenkinsトップページから、”新規ジョブ作成”を選択。
  2. “Enter an item name”に任意の名称を入力し、”フリースタイル・プロジェクトのビルド”を選択して[OK]
  3. 「ソースコード管理」に、gitリポジトリパスを入力
    1. 今回は同一サーバ内のsitedocsリポジトリを参照したいので”/opt/git/sitedocs.git”
    2. 必要に応じて認証情報を追加しよう
  4. 「ビルド・トリガ」から、”リモートからビルド”にチェックを入れる。
  5. 認証トークンは任意の文字列
  6. 「ビルド」から”シェルの実行”を選択。
  7. シェルスクリプトには以下のシェルを入力。
    /opt/git/MakeRepo.sh sitedocs

gitから連動させる

git-MkDocs連動で作成したpost-updateを更新します。
以下の内容になるように変更してください。

vi /opt/git/sitedocs.git/hooks
wget --spider --auth-no-challenge --http-user=admin --http-password=@Uu1552171 http://sandbox.local:8080/job/SiteDocs/build?token=sitedocs

exec git update-server-info

連動テスト

ローカル環境からsitedocsリポジトリにpushするとjenkinsが動作し始めるはずです。
おためしあれ!

おわりに

gitだけで静的httpの生成、公開までできるため、動的コンテンツを含まないのであればこれでも十分です。
またgitでバージョン管理できていますから、過去のものと比べるのも簡単。
WordPressまで使用する意味が正直薄れますね…

ウチも売るものないようなものですし、コレに変えてみてもいいのかな? と考えてしまいました。

Special Thanks!

CloudGarage Dev Assist Program協力のもと、NCEでSandbox、実験場を作成しました。\
試せるシステムに限りはありますが、ぜひお試しくださいませ

NCEからお知らせ

NCEでは個人・ベンチャー等の小規模団体で使用するWebインフラ構築のお手伝いを行っています。。
お気軽にご相談くださいませ!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください