開発部の「エイジ」です。
今回はciツールのdroneの構築手順を説明いたします。
droneとは
・GitリポジトリのイベントをフックしDockerコンテナ内でジョブを実行することに特化したCIツールです。
・競合としてJenkinsやCircle CIなどがあります
今回作成、使うもの
ngrok
こちらはグローバルなURLを使用しないといけないのでこちらを使います。
参考
drone構築
ngrokの起動
1 2 3 |
ngrok http 80 |
起動するとこのようになります。
GitHubでOAuth Applicationを作成
Homepage URL:droneのURL
Authorization callback URL: droneのURL/login
Authorization callback URLについてはdroneのdockerイメージが1.0であるなら<Homepage URL>/loginですが、
0.8は<Homepage URL>/authorizeとなっております。
droneの作成
docker-composeを利用して作成いたします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
version: '2' version: '2' services: drone-server: image: drone/drone:1 ports: - 80:80 - 443:443 volumes: - ./drone:/var/lib/drone/ restart: always environment: - DRONE_GITHUB_SERVER=https://github.com - DRONE_GITHUB_CLIENT_ID=xxxxxxxxxxxxxxxxxx - DRONE_GITHUB_CLIENT_SECRET=yyyyyyyyyyyyyyyyyyy - DRONE_SERVER_HOST=665ba0fe3b8f.ngrok.io - DRONE_GITHUB=true - DRONE_RPC_SECRET=628871121d817b159e4fb1734830c80c drone-agent: image: drone/agent:1 command: agent restart: always depends_on: - drone-server volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - DRONE_SERVER=ws://drone-server:80/ws/broker - DRONE_RPC_SECRET=628871121d817b159e4fb1734830c80c - DRONE_RUNNER_CAPACITY=2 - DRONE_RPC_HOST=665ba0fe3b8f.ngrok.io |
これで起動いたします。
1 2 3 |
dcoker-compose up |
起動するとgithubとの連携を確認されます。
.drone.yml編集
次にテストをしたいapp側の.drone.ymlを編集いたします。
今回はサンプルを用います。
こちらを連携しているgithubへpushしてください。
また使用するdrone-exercise をactivateにしてください。
このようにciが走りテストが成功すれば完了です。
.drone.ymlを修正すればトリガーのタイミングを変更できます。
以上になります。お読みいただきありがとうございました。
このブログは株式会社CoLabMixによる技術ブログです。
GCP、AWSなどでのインフラ構築・運用や、クローリング・分析・検索などを主体とした開発を行なっています。
Ruby on RailsやDjango、Pythonなどの開発依頼などお気軽にお声がけください。
開発パートナーを増やしたいという企業と積極的に繋がっていきたいです。
お問い合わせやご依頼・ご相談など