2019/07/17
友人との開発で、Owntimeを作っています。
このサービスは、時間の使い方を管理して、生活の振り返りをするきっかけを作ってくれます⏰「最近、生活の振り返りができていないな〜」っていう方は、ぜひ、一度使ってみてください!!
さて、今回は、Owntimeの開発業務効率化のために実装した、CD(継続的デリバリー)についてまとめました。
リリース作業は、単純操作が多くて、面倒になることが多いので、自動化したいと思う方が多いと思います。そのような方々に向けた記事になっています。
参考記事: Bitbucket Pipelinesで継続的デプロイ
まず、Bitbucket上で設定を進めます。
Public key
を仮想サーバーの ~/.ssh/authorized_keys
に追記するサイドバーにある「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を開発しています。
毎日の時間の使い方を記録して、分析して、理想な時間の使い方に近づけるサポートをするサービスです。
ぜひ、一度使ってみてください!