BitbucketのPIPELINEを使ってHerokuにも同時pushする方法(最新版?)


BitbucketのPIPELINEを使ってHerokuにもpushしようと思ったら、
躓いたのでメモまとめ。

まず、公式のページを確認してみると、
「ステップ1:Heroku APIトークンとアプリ名を環境変数として追加する」らしいが、
PIPELINESの箇所に「Environment variables」がないんだもの。。
https://confluence.atlassian.com/bitbucket/deploy-to-heroku-872013667.html

場所は変わっていないけど、
名前が変わって「Deployments」という箇所がそれらしい。

なので、ここにAPIトークンとアプリ名を登録します。
Deploymentsには「Test・Staging・Puroduction」があるので適宜選択します。
今回はTestに入れました。

// Bitbucket > 設定 > PIPELINES > Deployments

Name: HEROKU_API_KEY
Value: APIトークン

Name: HEROKU_APP_NAME
Value: アプリ名

トークンとアプリ名の確認方法

// HEROKU_API_KEY
$ heroku auth:token

// HEROKU_APP_NAME 一覧が出てくるので登録したいアプリ名を確認
$ heroku apps

このままページ下部にある「Edit YAML configuration」で設定の編集をします。
参考と、オンラインバリデーターが用意されているので、
こちらを使います。

bitbucket-pipelines.yml
https://confluence.atlassian.com/bitbucket/deploy-to-heroku-872013667.html

Validator for bitbucket-pipelines.yml
https://bitbucket-pipelines.prod.public.atl-paas.net/validator

// Bibucketを参考に、こんな感じにしました。
clone:
  depth: full
pipelines:
  default:
    - step:
        deployment: test
        script:
          - git push https://heroku:APIトークン@git.heroku.com/アプリ名.git HEAD

出来上がったbitbucket-pipelines.ymlをherokuにpush。
これで、次回からBitbucketにpushするだけでherokuにもpushされる仕組みです。
やったー!

Bitbucketにpushした後、
PipelinesのページでStatusが確認できます。

ただ、heroku loginを忘れてpushしてしまった時や、
何かの拍子でAPIトークンが変更されてしまうようで、、、
その度にBitbucketに登録し直しになってしまいました。。
なんか、2回pushした方が早い気がする。。

どなたか解決方法を知っている方がいらっしゃれば、ご教授お願い致します。。