本記事は下記スライドの追加記事です。
(スライド内のコードをテキストでコピペできるようにしたかった)
メインの内容はスライドを参照ください(´(ェ)`)
GitHub Actionsのワークフロー記述
GIGALIXIR_EMAIL、GIGALIXIR_PASSWORD、GIGALIXIR_APP_NAMEはGitHubリポジトリのsecretsに登録する。
Gigalixirのデプロイについては 公式ドキュメント(Deployment & CI/CD)で例としてリンクされている、
https://gist.github.com/jesseshieh/7b231370874445592a40bf5ed6961460
を参考にしています。
name: Deploy to Gigalixir
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: sudo pip install gigalixir --ignore-installed six
- run: gigalixir login -e "${{ secrets.GIGALIXIR_EMAIL }}" -y -p "${{ secrets.GIGALIXIR_PASSWORD }}"
- run: gigalixir git:remote ${{ secrets.GIGALIXIR_APP_NAME }}
- run: git push -f gigalixir HEAD:refs/heads/main
- run: gigalixir run mix ecto.migrate
git commitを忘れない。
$ git add .github/workflows/deploy_to_gigalixir.yml
$ git commit -m "Set GitHub Action workflow"
Gigalixirデプロイに必要な設定ファイル
elixir_buildpack.configにElixir、Erlangのバージョンに記載する。
バージョンは elixir -v
で確認。
echo "elixir_version=1.13.4" >> elixir_buildpack.config
echo "erlang_version=25.0" >> elixir_buildpack.config
phoenix_static_buildpack.configにnodeのバージョンを記載する。
バージョンはnode -v
で確認できる。
echo "node_version=16.15.0" >> phoenix_static_buildpack.config
assets/package.jsonに下記を記載する。
{
"scripts": {
"deploy": "cd .. && mix assets.deploy && rm -f _build/esbuild*"
}
}
git commitを忘れない。
git add elixir_buildpack.config phoenix_static_buildpack.config assets/package.json
git commit -m "Set Elixir, Erlang, and Node version"
いざGigalixirにデプロイ
git pushするとGigalixirへのデプロイが実行される。
GitHubリポジトリのActionsメニューから実行ステータス、ログが確認できる。
git push
最後に
メインの内容はスライドにあるので、コピペしたい部分だけこちらに