-
Notifications
You must be signed in to change notification settings - Fork 1
77 lines (65 loc) · 2.3 KB
/
ci.yml
File metadata and controls
77 lines (65 loc) · 2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
types: [opened, synchronize]
jobs:
test:
strategy:
matrix:
os: [ubuntu-22.04]
otp: [26.x]
elixir: [1.16.x]
name: OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
steps:
- name: ☁️ Checkout repository
uses: actions/checkout@v3
- name: 💧 Setup Elixir ${{ matrix.elixir }} (OTP ${{matrix.otp}})
uses: marmelasoft/elixir-setup@main
with:
otp-version: ${{ matrix.otp }}
elixir-version: ${{ matrix.elixir }}
build-flags: --all-warnings --warnings-as-errors
env:
MIX_ENV: test
- name: 🔬 Run the tests
run: mix test --warnings-as-errors
env:
MIX_ENV: test
# # Cache key based on Erlang/Elixir version and the mix.lock hash
# - name: Restore PLT cache
# id: plt_cache
# uses: actions/cache/restore@v3
# with:
# key: |
# plt-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }}
# restore-keys: |
# plt-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-
# path: |
# priv/plts
# # Create PLTs if no cache was found
# - name: Create PLTs
# if: steps.plt_cache.outputs.cache-hit != 'true'
# run: mix dialyzer --plt
# # By default, the GitHub Cache action will only save the cache if all steps in the job succeed,
# # so we separate the cache restore and save steps in case running dialyzer fails.
# - name: Save PLT cache
# id: plt_cache_save
# uses: actions/cache/save@v3
# if: steps.plt_cache.outputs.cache-hit != 'true'
# with:
# key: |
# plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }}
# path: |
# priv/plts
# - name: 🔍 Analyze the code
# run: mix dialyzer --format github
- name: 🧹 Check code formating
run: mix format --check-formatted
if: always()
- name: 💡 Lint the code
run: mix credo --strict --all
if: always()