今まで一部案件で、Jenkinsを使ってgit push
していたが、そもそもBitbucketでソース管理をしていたので、せっかくなのでPipelineを使って、プルリクがマージされたタイミングと、masterブランチが更新されたタイミングで、サーバーにgit push
でデプロイする仕組みを構築する。
bitbucket-pipelines.ymlの作成
- デプロイしたいレポジトリの左メニューから、[pipelines]を選択する
- 環境にあったテンプレートが選択できるので、テンプレートを選択し、[Commit file]ボタンを押下する
bitbucket-pipelines.ymlのファイルがおそらくディフォルトで設定しているブランチに作成される。
bitbucket-pipelines.ymlの中身
テンプレートで作成すると、imageが設定されているが、DockerHubにあるものは使えるらしい。
pipelines:
branches:
develop:
- step:
deployment: staging
script:
- git remote add dev ssh://$STAGING_SSH_USER@$STAGING_SSH_SERVER:$STAGING_SSH_PORT/$STAGING_SOURCE_DIR
- git push dev develop
master:
- step:
deployment: production
script:
- git remote add prod ssh://$PROD_SSH_USER@$PROD_SSH_SERVER:$PROD_SSH_PORT/$PROD_SOURCE_DIR
- git push prod master
pipelinesのbranchesで、対象のブランチがBitbucketにpushされたタイミングで、step内のscriptが実行される仕組みなる。
deploymentのキーにtest
,staging
,production
のいずれかを設定しておくと、左メニューのDeploymentsのページに、実行状況が表示される。
環境変数の設定
bitbucket-pipelines.ymlの中で使われている、$で始まるものは、レポジトリの[設定]-[PIPELINES]-[Environment variables]で環境変数を設定することにより、使えるようになる。
案件が複数ある場合など、bitbucket-pipelines.ymlは同じものを使い、環境変数で各案件にあったSSHの接続情報などを設定するなどの使い方ができる。
SSH Keyの設定
sshで接続するためのSSH Keyはレポジトリの[設定]-[PIPELINES]-[SSH keys]から設定する。Keyを作成するか、すでに作成済みのKeyを登録する。
無料枠について
pipelinesは無料プランであれば、ビルド時間が月50分まで、スタンダードプランだと、月500分まで無料。
まだ、色々試しているので、何かあれば追記していこうと思う。
参考サイト