-
Notifications
You must be signed in to change notification settings - Fork 1
137 lines (121 loc) · 3.28 KB
/
test.yml
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
name: Unit Tests
on:
push:
branches:
- '*'
jobs:
version_tests:
runs-on: ubuntu-latest
name: OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}
strategy:
matrix:
include:
- elixir: '1.12'
otp: '24'
- elixir: '1.13'
otp: '24'
- elixir: '1.13'
otp: '25'
- elixir: '1.14'
otp: '24'
- elixir: '1.14'
otp: '25'
- elixir: '1.14'
otp: '26'
- elixir: '1.15'
otp: '24'
- elixir: '1.15'
otp: '25'
- elixir: '1.15'
otp: '26'
- elixir: '1.16'
otp: '24'
- elixir: '1.16'
otp: '25'
- elixir: '1.16'
otp: '26'
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- run: mix deps.get
- run: mix test
all_versions_tests:
name: "All Versions Tests"
needs: version_tests
runs-on: ubuntu-latest
steps:
- run: echo "Elixir tests for many versions of Elixir and OTP have successfully completed."
poison_only_test:
runs-on: ubuntu-20.04
name: Test - poison only, no jason
defaults:
run:
working-directory: integration_test_apps/poison_only_app
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: '26'
elixir-version: '1.15'
- run: mix deps.get
- run: mix test
jason_only_test:
runs-on: ubuntu-20.04
name: Test - jason only, no poison
defaults:
run:
working-directory: integration_test_apps/jason_only_app
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: '26'
elixir-version: '1.15'
- run: mix deps.get
- run: mix test
all_tests:
runs-on: ubuntu-latest
env:
MIX_ENV: test
strategy:
matrix:
include:
- elixir: '1.15.6'
otp: '26.1.1'
steps:
- uses: actions/checkout@v4
- name: Setup elixir
uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- name: Get Deps
run: mix deps.get
- name: Cache Elixir build
uses: actions/cache@v3
with:
path: _build
key: elixir-build-v1-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('mix.lock') }}-${{ hashFiles('lib/**/*.ex', 'config/*.exs', 'mix.exs') }}
- name: Compile Deps
run: mix deps.compile
- name: Compiler Warnings
run: mix compile --force --warnings-as-errors
- name: Run Credo
run: mix credo --strict
- name: Check Format
run: mix format --check-formatted
- name: Run Coveralls
run: mix coveralls
- name: Generate Docs
run: mix docs --output test/doc
- name: Run Dialyzer
run: mix dialyzer --list-unused-filters
required_all_tests:
name: "Complete Elixir Tests"
needs: [all_tests]
runs-on: ubuntu-latest
steps:
- run: echo "Elixir tests and static analyses completed succcessfully."