😊
Heroku の自動デプロイを GitHub Action で再現する
Heroku の自動デプロイを GitHub Action で再現する
Heroku の 2413 の Issue が Still Open で Heroku の自動デプロイが使い物にならないので、GitHub Actionで実現します。
ちょうど良さそうな GitHub Action があるので使っていきます。
使い方
基本的には README のとおりです。
name: Deploy
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: akhileshns/heroku-deploy@v3.12.12 # This is the action
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "YOUR APP's NAME" #Must be unique in Heroku
heroku_email: "YOUR EMAIL"
Yaml の中で利用する Heroku の API Key ですが、いろんなサイトで以下のURLページで取得できるとか書かれてるケースが多いです。
が、これはこれはアカウントに一つしか無い、とてもややこしいトークンなので、これを乱用するのはとても気持ちが悪いです。
ここは、authorizations:create
でトークンを個別に発行するのが良いでしょう。
$ heroku authorizations:create
# output below
Creating OAuth Authorization... done
Client: <none>
ID: XXXXXX
Description: Long-lived user authorization
Scope: global
Token: XXXXXX
Updated at: Mon May 09 2022 21:08:36 GMT+0900 (日本標準時) (less than a minute ago)
ここで作成したトークンは一覧表示できないっぽいので、ID はしっかり覚えておく必要があります。
トークンの詳細は authorizations:info <id>
で確認可能です。
セキュリティ的にどうなの?
API キーを利用する以上、セキュリティの心配は重要です。
とりあえず、action を利用する際には、 tag を固定するのは必須です。
実行されるコードが気になる場合は以下のファイル辺りを中心に確認しておくのが良いでしょう。
action を pr ベースで実行するとセキュリティのリスクが跳ね上がります。
あとコードレビューの中で入念に yml ファイルの変更を監視するようなワークフローを取らないと、evil なチームメンバーのアカウントが evil に落ちた場合 、何でもできる感じになるので注意が必要です。
Discussion