前々回、前回の記事でHerokuでGolangプロジェクトを動かすのと、Heroku Container RegistoryにDockerイメージをPushし、web dynoにリリースするというのをやりました。
今回は、Github Actionsを使ってHerokuに自動デプロイしてみます。
simple-minds-think-alike.hatenablog.com
simple-minds-think-alike.hatenablog.com
.githubディレクトリを追加
自動デプロイというと大げさに聞こえますが、前回まででHerokuのgitリポジトリにpushすれば自動的にweb dynoにデプロイするようになっているので、PRがmasterブランチにマージされた際に自動的にgit pushするようにするだけです。
プロジェクトにファイル.github/workflows/heroku-push.yml
を追加し、 akhileshns/heroku-deploy
を使ってHerokuのgitリポジトリへの自動pushが実行されるようにします。
name: Heroku push on: push: branches: - master workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: akhileshns/heroku-deploy@v3.7.8 with: heroku_api_key: ${{secrets.HEROKU_API_KEY}} heroku_app_name: "golang-sample-202005" heroku_email: ${{secrets.HEROKU_EMAIL}}
Secretsの設定
GithubのSetting/Secretsに、環境変数 HEROKU_API_KEY
, HEROKU_EMAIL
を登録しておきます。
masterにPRをマージしてみる
PRをマージすると、Actionsでworkflowが動き始め、以下のようなログが表示されます。
Heroku上で
- Dockerfileのビルド
- Heroku Container Registoryへの登録
- web dynoへの反映
が自動的に行われます。