GitHub Actions で Heroku に自動デプロイ
はじめに
筆者は、アルバイトでシステム開発を行っている九州大学の大学院生です。
本格的に開発を行っているのは1年ほどです。
記事作成経験が少ないため、主に初学者向けの記事をたくさん書いてみてます!
今回は
「GitHub Actions を用いて Heroku へ自動デプロイ」 を行ってみようと思います
Heroku では GUIから自動デプロイを設定できますが、
GitHub Actions を使ったほうができることも多いので、紹介していきます
Heroku でアプリケーションを作成していることを前提としています
LINEBOT作成方法 で Herokuについて紹介しているのでわからない方は参考にしてみてください
- GitHub Actions とは?
- Heroku へ自動デプロイ
1. GitHub Actions とは?
公式がいちばんわかりやすいです... 参考
ここでは簡単に。
GitHub Actions では、ワークフローを定義することによって、
GitHub でプロジェクトのビルド・テスト・パッケージ・リリース・デプロイなどが可能になります.
実行するタイミングについても、プルルクエストをだしたとき、特定のブランチにマージされたときなど自由に設定できます
action 作成方法
Git を用いているプロジェクトで .github/workflows
ディレクトリを作成し、
その中で sample.yml
のようなYAMLファイルを作成します。(ファイル名は自由)
公式ドキュメント(ここ)で例があったため同様の内容を紹介します
例では、GitHub に push
された時に以下のコマンドを実行します
npm install -g bats
bats -v
- 作成する YAMLファイル
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- run: npm install -g bats
- run: bats -v
- 説明
2. Heroku へ自動デプロイ
今回は 「master に プッシュされたら デプロイ」 という設定を行います
GitHub を利用したプロジェクトで .github/workflows/deploy-to-heroku.yml
を作成します
以下のリンク先に README があるので参考にしながら作成してみてください
name: Deploy to heroku
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: akhileshns/heroku-deploy@v3.8.8
with:
heroku_api_key: ${{secrets.HEROKU_API_KEY}}
heroku_app_name: "application-name"
heroku_email: ${{secrets.HEROKU_EMAIL}}
環境変数
with で記載しているように Herokuにデプロイするには、GitHub上に環境変数として
HEROKU_API_KEY
とHEROKU_EMAIL
が必要になります。
→ application-name を直接書きたくない場合も同様に環境変数にセットしてください
Github Actionsを設定したいリポジトリの Settings > Secretsにアクセスします
New repository secret から HEROKU_API_KEY
とHEROKU_EMAIL
を設定してください
※ Heroku API Key は こちら から取得
以上で設定は完了です。
GitHub に push すれば、Actions から動作を確認できます
おわりに
今回は GitHub Actions を用いたデプロイを紹介してみました!
GitHub Actions ではできることが多く、テストやデプロイを自動化することで
開発スピードをあげることができます。
今後、Github Actions でできることについて、さらに紹介していきたいと思います。
ありがとうございました!
Kaze Shindo
iQLab Engineer
Discussion