Skip to content

Commit

Permalink
Add GitHub Actions workflow to run tests
Browse files Browse the repository at this point in the history
The new `ci.yml` workflow supposed to run `mix test`, code formatting
check, and code static analysis tool on every push or pull request.

This should simplify our GitHub life.
  • Loading branch information
cr0t committed Jul 4, 2024
1 parent d5031fb commit 6162988
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: CI

on:
- push
- pull_request

permissions:
contents: read

jobs:
mix_test:
name: mix test (Elixir ${{matrix.elixir}} / OTP ${{matrix.otp}})
runs-on: ubuntu-latest

env:
MIX_ENV: test

strategy:
matrix:
include:
- elixir: 1.14.5
otp: 25.3

- elixir: 1.16.3
otp: 26.2

- elixir: 1.17.1
otp: 27.0

steps:
- name: Setup Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{matrix.elixir}}
otp-version: ${{matrix.otp}}

- name: Checkout code
uses: actions/checkout@v4

- name: Cache deps
uses: actions/cache@v4
env:
cache-name: deps-cache
with:
path: deps
key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{hashFiles('**/mix.lock') }}
restore-keys: ${{ runner.os }}-mix-${{ env.cache-name }}-

- name: Cache build
uses: actions/cache@v4
env:
cache-name: compiled-build-cache
with:
path: _build
key: ${{ runner.os }}-mix-${{ env.cache-name }}-${{hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-mix-${{ env.cache-name }}-
${{ runner.os }}-mix-
- name: Install deps
run: mix deps.get

- name: Compile with warnings as errors
run: mix compile --warnings-as-errors

- name: Check code formatting
run: mix format --check-formatted

- name: Check for unused dependencies
run: mix deps.unlock --check-unused

- name: Analyze code
run: mix credo suggest --ignore todo

- name: Run tests
run: mix test

0 comments on commit 6162988

Please sign in to comment.