LoginSignup
13
0

More than 1 year has passed since last update.

PhoenixアプリをGitHub ActionsでGigalixirにデプロイする

Last updated at Posted at 2022-06-10

本記事は下記スライドの追加記事です。
(スライド内のコードをテキストでコピペできるようにしたかった)

メインの内容はスライドを参照ください(´(ェ)`)

GitHub Actionsのワークフロー記述

GIGALIXIR_EMAIL、GIGALIXIR_PASSWORD、GIGALIXIR_APP_NAMEはGitHubリポジトリのsecretsに登録する。

Gigalixirのデプロイについては 公式ドキュメント(Deployment & CI/CD)で例としてリンクされている、
https://gist.github.com/jesseshieh/7b231370874445592a40bf5ed6961460
を参考にしています。

.github/workflows/deploy_to_gigalixir.yml
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に下記を記載する。

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

最後に

メインの内容はスライドにあるので、コピペしたい部分だけこちらに:bear:

13
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
0