LoginSignup
15
6

More than 3 years have passed since last update.

ElixirをGitHubActionsを使ってCIしよう。

Last updated at Posted at 2019-12-19

この記事は、「fukuoka.ex Elixir/Phoenix Advent Calendar 2019」19日目の記事です。
きのうは @im_miolab さんの「プログラミング言語Elixirの北九州コミュニティ「kokura.ex」についてお話します!」でした。

はじめに

皆さん, Elixir開発でCIやってますか? 
弊社では, TravisCICircleCIを使ってるプロジェクトもあります。

普段はGitHub使ってるのに, 他のサービスと連携する寂しさを感じていました。
GitHubActionsがベータ版で使えると知り, 魂が震えました。
そう・・・使ってみよう!! と思ったわけです。

補足

GitHubActionsは以前ベータ版でしたが, 2019年11月14日に正式版になりました。
色々できそうなんですが, 今回はCIのことだけやろうと思います!!

ではやりましょー

環境

諸事情により, Elixirのバージョンは古めです。
・elixir 1.6.6

・erlang 21.3.8.5

適当にElixir/Phoenixプロジェクト作成して, 起動します

mix phx.new actions --no-brunch --no-ecto
mix phx.server

いつもの画面表示を確認 (久しぶりに見たなぁ・・・)
スクリーンショット 2019-12-19 19.20.05.png

下準備は完了です!!

ワークフローを書く前に・・・

そのまえに, 今のディレクトリ直下は以下の状態です。
※検証のためにフォーマッター入れました。

./              .formatter.exs  .gitignore      README.md       config/         lib/            mix.lock        test/
../             .git/           .idea/          _build/         deps/           mix.exs         priv/

せっかくなので, GitHubに上げときます。

ワークフローを書こう!!

以下のファイルを作成します。
今回は, プルリクが上がったら, テストを実行してフォーマットチェックをする内容です。

.github/workflows/elixir.yml

name: Elixir CI

on: pull_request

jobs:
  test:
    name: Build & Test & FormatCheck
    runs-on: ubuntu-latest

    container:
      image: elixir:1.6-otp-21
      env:
        MIX_ENV: test

    steps:
      - uses: actions/checkout@v1.0.0
      - name: Install Dependencies
        run: |
          mix local.rebar --force
          mix local.hex --force
          mix deps.get
      - name: Run Test
        run: |
          mix test

      - name: Format Checks
        run: |
          mix format --check-formatted

これを作成後, プルリクを作成するとCIが動きます。
※少しタイムラグがあるので, ちょっと待たないといけません・・・。
スクリーンショット 2019-12-19 19.35.53.png

ちゃんと動いてますね!!

CI結果を見てみる

フォーマットチェックしてますが, 私は mix format していません。
絶対エラーになっているはずなので, 見てみます。

スクリーンショット 2019-12-19 19.38.44.png

怒られてますね。 うん, 知ってた。

詳細をみると, フォーマットチェックでエラーになってることがわかります。
スクリーンショット 2019-12-19 19.40.40.png

▶を開くとメッセージが見れます。
スクリーンショット 2019-12-19 19.41.45.png

グリーンにしたい・・・

フォーマットしてないことが原因なので, フォーマットします

mix format

フォーマット完了後にPushすると, またCIが動き出します。 ドキドキ
スクリーンショット 2019-12-19 19.47.09.png

しばらくまつと・・・
スクリーンショット 2019-12-19 19.48.15.png

イェ━━━━━ヽ( ゚Д゚)人(゚Д゚ )ノ━━━━━━イ!! グリーンになりました!!!

これで 「普段はGitHub使ってるのに, 他のサービスと連携する寂しさ」 から開放です!!

まとめ

GitHubActionsも正式版になりましたし,
気がついたらアーティファクトが使えるようになっていました。(気づいていないだけかも) 
GitHubだけでできるようになったので, 機会があればこれからも色々触ってみたいと思います☆


明日の「fukuoka.ex Elixir/Phoenix Advent Calendar 2019」20日目の記事は、@gkumi5638 さんですー

15
6
0

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
15
6