Current section
Files
Jump to
Current section
Files
priv/templates/nimble_template/.github/workflows/test.yml.mix.eex
name: Test
on: pull_request
env:
OTP_VERSION: <%= inspect erlang_version %>
ELIXIR_VERSION: <%= inspect elixir_version %>
MIX_ENV: test
jobs:
install_and_compile_dependencies:
name: Install and Compile Dependencies
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.8.0
with:
access_token: ${{ github.token }}
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Set up Elixir
uses: erlef/setup-elixir@v1
with:
otp-version: ${{ env.OTP_VERSION }}
elixir-version: ${{ env.ELIXIR_VERSION }}
- name: Cache Elixir build
uses: actions/cache@v2
with:
path: |
_build
deps
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-mix-
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix compile
lint_codebase:
name: Linting
needs: install_and_compile_dependencies
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Set up Elixir
uses: erlef/setup-elixir@v1
with:
otp-version: ${{ env.OTP_VERSION }}
elixir-version: ${{ env.ELIXIR_VERSION }}
- name: Cache Elixir build
uses: actions/cache@v2
with:
path: |
_build
deps
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-mix-
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix compile --warnings-as-errors --all-warnings
- name: Run codebase check
run: mix codebase
test:
name: Unit Test
needs: lint_codebase
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: ${{ github.head_ref }}
- name: Set up Elixir
uses: erlef/setup-elixir@v1
with:
otp-version: ${{ env.OTP_VERSION }}
elixir-version: ${{ env.ELIXIR_VERSION }}
- name: Cache Elixir build
uses: actions/cache@v2
with:
path: |
_build
deps
key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-mix-
- name: Install dependencies
run: mix deps.get
- name: Compile dependencies
run: mix compile
- name: Run Tests
run: mix coverage
- name: Upload Code Coverage Artifact
uses: actions/upload-artifact@v2
if: ${{ failure() }}
with:
name: code_coverage
path: cover/