/elixir_actions

Elixir action.yml's for GitHub

Primary LanguageElixirCreative Commons Zero v1.0 UniversalCC0-1.0

Elixir Actions for GitHub

๐Ÿค” GitHub action failied?

See elixir_ci.yml (complete example to use)

See Elixir CI Workflow ๐Ÿงช (workflow runs for this repository)


- name: Install Erlang/OTP + Elixir ๐Ÿ—๏ธ
  id: setup-beam
  uses: erlef/setup-beam@v1
  with:
    otp-version: '24.0' # version range or exact (required)
    elixir-version: '1.12.0' # version range or exact (required)
    # install-hex: true (default)
    # install-rebar: true (default)
  # outputs: ${steps.setup-beam.outputs.(opt, elixir, rebar3)-version} (exact version installed)
        

Basic CI With Caching

Typical mix steps

  • deps ๐Ÿ”—
  • compile (+ format, credo, dialyzer, docs) ๐Ÿ”ง
  • test (+ cover/age) ๐Ÿฆบ
  • upload artifacts (doc, cover) ๐Ÿ“š

Caching Can Really Help

Save

  • personal time โฑ๏ธ
  • GitHub account action minutes ๐Ÿ“‰
- name: Restore dependency/build cache ๐Ÿ—ƒ๏ธ
  uses: actions/cache@v2
  with:
    path: |
      deps
      _build
    # cache key is hierarchical: OS, otp-version, elixir-version, mix.lock
    key: ${{ runner.os }}-mix-${{ steps.setup-beam.outputs.otp-version }}-${{ steps.setup-beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }}
    # restore keys are tried on cache misses, and only match the key prefix
    restore-keys: |
      ${{ runner.os }}-mix-${{ steps.setup-beam.outputs.otp-version }}-${{ steps.setup-beam.outputs.elixir-version }}-
      ${{ runner.os }}-mix-${{ steps.setup-beam.outputs.otp-version }}-
      ${{ runner.os }}-mix-

Action generates a results status badge:

๐Ÿค” GitHub action failied?

for use in readme.md, dashboards, etc:

https://github.com/<OWNER>/<REPOSITORY>/actions/workflows/<WORKFLOW_FILE>/badge.svg