Upgrade to Pro — share decks privately, control downloads, hide ads and more …

piyopiyo.ex#8 GitHub ActionsでGigalixirにデプロイする

piyopiyo.ex#8 GitHub ActionsでGigalixirにデプロイする

2022/6/4に開催されたpiyopiyo.ex#8で使用したスライドの更新版です。
https://piyopiyoex.connpass.com/event/247404/

piyopiyo.exはElixir/Phoenixの初心者向け勉強会グループです。
https://piyopiyoex.connpass.com/

nako@9時間睡眠

June 08, 2022
Tweet

More Decks by nako@9時間睡眠

Other Decks in Programming

Transcript

  1. 今回のデプロイの流れ Repository GitHub Actions The only platform that fully supports

    Elixir and Phoenix!!! (1) Pull Request (2) Trigger workflow (3) Deploy We will be happy.
  2. Gigalixirとは • “The only platform that fully supports Elixir and

    Phoenix. Unlock the full power of Elixir/Phoenix. No infrastructure, maintenance, or operations.” ◦ GigalixirはElixirとPhoenix専用のPaaS。 ▪ PaaS(Platform as a Service)はアプリケーション運用に必要なサーバー環境 (サーバーの設置、OSのインストール、ネットワークの設置、 DBの設定など)をまと めて提供するプラットフォームです。 OSの更新なども自動で行ってくれます。 ▪ 同様のサービスにはHerokuなどがあります。 ◦ 無料枠は1つのインスタンスが立てられます。
  3. CI/CDとは • Continuous Integration(継続的インテグレーション)/ Continuous Delivery(継続 的デリバリー)の略 ◦ 継続的インテグレーションと継続的デリバリーまたは継続的デプロイのいずれかを組み合 わせたプラクティスを指す。

    ▪ 継続的インテグレーション • すべての開発者の作業コピーを定期的に共有されたメインラインにマージすること。 1 日に数回行われるのが一般的。 ▪ 継続的デリバリー • チームが短いサイクルでソフトウェアを生産し、いつでも確実にソフトウェアをリリースで きるようにし、ソフトウェアをリリースする際には、手動で行うソフトウェアエンジニアリン グのアプローチ。 • 継続的デリバリーと違いデプロイは手動。 ▪ 継続的デプロイ • 自動化されたデプロイによって高い頻度で最新のソフトウェア機能を提供し続けるソフ トウェア開発手法・運用手法。
  4. 再び、今回のデプロイの流れ Repository GitHub Actions The only platform that fully supports

    Elixir and Phoenix!!! (1) Pull Request (2) Trigger workflow (3) Deploy
  5. GitHub Actionsのワークフローを設定する • .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