BitbucketのPiplinesを使ってCD(継続的デリバリー)を実装する
友人との開発で、Owntimeを作っています。
このサービスは、時間の使い方を管理して、生活の振り返りをするきっかけを作ってくれます⏰「最近、生活の振り返りができていないな〜」っていう方は、ぜひ、一度使ってみてください!!
さて、今回は、Owntimeの開発業務効率化のために実装した、CD(継続的デリバリー)についてまとめました。
リリース作業は、単純操作が多くて、面倒になることが多いので、自動化したいと思う方が多いと思います。そのような方々に向けた記事になっています。
参考記事: Bitbucket Pipelinesで継続的デプロイ
Bitbucketの設定
まず、Bitbucket上で設定を進めます。
- Piplinesを有効化する
- サイドバーの「設定」->「Settings」->「Enable Pipelines」を有効化する
- 新しいSSH Keyを登録する
- サイドバーの「設定」->「SSH Keys」->「generate keys」を押下する
- 生成された
Public key
を仮想サーバーの~/.ssh/authorized_keys
に追記する - 「Known hosts」の「Host address」に仮想サーバーのIPを入力して「Fetch」を押下する
- Fetchが成功したら、 Figerprint ができるので、「add host」を押下する
bitbucket-piplines.ymlを作成
サイドバーにある「Piplines」を押下すると下記の画面になります。
さらに「Python」を選択すると、 bitbucket-piplines.yml
のテンプレートが表示されます。
bitbucket-piplines.yml
は、下記のように編集します。
image: python:3.7.3
pipelines:
branches:
master:
- step:
name: Release to live server
script:
- ssh -p $DEPLOY_SERVER_PORT $BITBUCKET_BRANCH@$DEPLOY_SERVER_IP bash < deploy.sh
さらに、仮想サーバー内で実行するコマンドは、 deploy.sh
に記入します。
(deploy.shを用意するのは、イマドキではないと言われることがあるので、時間に余裕ができたら、改修する予定です。)
#!/bin/bash
cd /path/to/project
export VENV_HOME_DIR=$(pipenv --venv)
source $VENV_HOME_DIR/bin/activate
git pull origin master
pip install -r requirements.txt
pkill gunicorn
gunicorn owntime.wsgi -D
echo "Deployed! Thank you!!"
これで、実装が完了です。
masterブランチにマージしてみてください。
「Piplines」を押下すると、成功しているのか失敗してしまったのか、が表示されています!
今後の修正点
deploy.sh
の途中の処理に失敗しても、最後のコマンドまで実行されて、Bitbucket上では、 Successful になってしまいます。
なので、処理が失敗したら、Bitbucket上で、 Failed にするような変更をしていきたいです。
おまけ
今回紹介したTipsを使って、友人とOwntimeを開発しています。
毎日の時間の使い方を記録して、分析して、理想な時間の使い方に近づけるサポートをするサービスです。
ぜひ、一度使ってみてください!
Author And Source
この問題について(BitbucketのPiplinesを使ってCD(継続的デリバリー)を実装する), 我々は、より多くの情報をここで見つけました https://qiita.com/kotamatsuoka/items/f2840a2f07ffd64d8c94著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .