LoginSignup
1
0

More than 5 years have passed since last update.

backlog-jenkins-nginx-dockerでWebサービスを構築③

Last updated at Posted at 2018-10-30

jenkins と backlog の連携環境構築

これの続き

参考

「Publish over SSH」プラグイン

  • jenkins のプラグインが有効であること jenkins の管理の利用可能タブから確認する。
  • チェックをつけて再起動せずに設定

設定

  1. 「Jenkins の管理」→「システムの設定」
  2. 「Publish over SSH」→「Key」/root/.ssh/{key}の値を張り付ける。「Path to key」は空で OK
  3. 「SSH Servers」→「追加」
  4. 「Name」わかりやすい名前を入力
  5. 「Hostname」Web サーバのローカル IP アドレス
  6. 「Username」なんでもいい?もしくは deploy サーバーの ID
  7. 「Test Configration」Success が表示されれば OK
  8. 「保存」

「バックログ」プラグイン

  • プラグインのアーカイブをローカルにおとして、「プラグインの管理」から「高度な設定」からアップロードする。

設定

  1. 「新規ジョブ作成」→「ジョブ名」適当に入力
  2. 「フリースタイル・プロジェクトのビルド」
  3. 「OK」
  4. 「backlog」を選択
  5. 「URL」「ID」「PWD」を入力

「git」プラグイン

設定

  1. 「認証情報」→「グローバルドメイン」→「認証情報の追加」
  2. 「SSH ユーザ名と秘密鍵」を選択
  3. 「秘密鍵」→「直接入力」を選択し、鍵に秘密鍵を貼り付け
  • Backlog の git へアクセスできるユーザの公開鍵とペアとなっている秘密鍵
  • deploy サーバーで作った秘密鍵

ジョブを作ってデプロイする

設定

  1. 「新規ジョブ作成」→「ジョブ名」を適当に入力
  2. 「フリースタイル・プロジェクトのビルド」を選択して「OK」を押下
  3. 「ソースコード管理」から「Git」を選択する。URL と追加した認証情報を設定する。URL は SSH 接続の Clone と同じ。
  4. 「ビルド」→「ビルド手順の追加」→「Send files or execute commands over SSH」を選択
  5. 「SSH Server」→「Name」に Web サーバの情報を選択。出てこない場合は「Publish over SSH」の設定を見なおしてください。
  6. 「Transfers」→「Transfer Set」→「Source files」に「*(すべてのファイルを指す)」を入力
  7. 「Transfers」→「Transfer Set」→「Remote directory」に「/repo/プロジェクト名/リポジトリ名」を入力。deploy サーバーの/root 配下のここにソースが転送される。
  8. 「Transfer Set」→「Exec command」に「./deploy.sh プロジェクト名 リポジトリ名の通り ブランチ名」を入力。Web サーバにあるデプロイスクリプトに引数をつけて指定
  9. 「保存」を押下

deployScript の作成

vi /root/deploy.sh
# ./deploy.sh {プロジェクト名} {リポジトリ名} {ブランチ名}

echo deploy job start

PROJECT_NAME=$1
REPO_NAME=$2
BRANCH_NAME=$3

cd /root/repo/$PROJECT_NAME/$REPO_NAME
docker build -f /root/repo/$PROJECT_NAME/$REPO_NAME/Dockerfile-$BRANCH_NAME -t localhost:5000/ci-$REPO_NAME-$BRANCH_NAME .
docker push localhost:5000/ci-$REPO_NAME-$BRANCH_NAME
cmd=`docker ps -q --filter name=ci-$REPO_NAME-$BRANCH_NAME`
name=`echo $cmd`
if [ "$name" != "" ]; then
docker rm -f ci-$REPO_NAME-$BRANCH_NAME
fi

docker run -i -d --rm --net=nginxproxy_default --name ci-$REPO_NAME-$BRANCH_NAME localhost:5000/ci-$REPO_NAME-$BRANCH_NAME

WebHook の設定

参考

https://{jenkinsサーバーのhost}/git/notifyCommit?url={gitリポジトリssh}
  • 「設定」→「ビルド・トリガ」→「SCM をポーリング」にチェック
  • これでプッシュすると Jenkins が動き出す。

その他の Backlog との連携

  • ビルド後の処理として、PR に通知

課題

  • backlog と連携アカウント連携できない。
  • branch などは渡すようにする
  • webhook が一つしか登録できない。。。
  • マージした PR 見れないし。。。
  • backlog のプラグイン動かないし。。。
  • 最新を持ってきちゃってるから、戻せないし。。。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0