Skip to content
This repository was archived by the owner on Mar 19, 2021. It is now read-only.

Commit 0545182

Browse files
mmmriesConnorRigby
authored andcommitted
run tests for multiple elixir versions and add dialyzer checks (#84)
* run tests for multiple versions of elixir * add a lint job to check types, formatting, coverage, etc * include dialyxir in test env
1 parent 40e8765 commit 0545182

File tree

2 files changed

+69
-12
lines changed

2 files changed

+69
-12
lines changed

.circleci/config.yml

+68-11
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,81 @@
1-
version: 2.0
1+
version: 2.1
2+
3+
default_version: &default_version 1.8.1
4+
25
jobs:
36
build:
7+
parameters:
8+
version:
9+
description: Elixir Version
10+
type: string
11+
default: *default_version
12+
parallelism: 1
413
docker:
5-
- image: circleci/elixir:1.8.1
6-
environment:
7-
MIX_ENV: test
14+
- image: elixir:<< parameters.version >>
15+
working_directory: ~/app
16+
817
steps:
918
- checkout
1019
- restore_cache:
1120
keys:
12-
- v2-dependency-cache-{{ checksum "mix.lock" }}
21+
- build-<<parameters.version>>
1322
- run: mix local.hex --force
1423
- run: mix local.rebar --force
15-
- run: mix deps.get
16-
- run: mix deps.compile
17-
- run: mix compile
24+
- run: mix do deps.get, compile
25+
- save_cache:
26+
key: build-<<parameters.version>>
27+
paths:
28+
- "deps"
29+
- "_build"
30+
- "~/.mix"
31+
- run: mix test
32+
33+
lint:
34+
parameters:
35+
version:
36+
description: Elixir Version
37+
type: string
38+
default: *default_version
39+
parallelism: 1
40+
docker:
41+
- image: elixir:<< parameters.version >>
42+
working_directory: ~/app
43+
steps:
44+
- checkout # check out source code to working directory
45+
- restore_cache:
46+
keys:
47+
- lint-<<parameters.version>>-{{ checksum "mix.lock" }}
48+
- run: mix local.hex --force
49+
- run: mix local.rebar --force
50+
- run: mix do deps.get, compile
51+
- run: mix dialyzer --halt-exit-status
1852
- run: mix credo --strict
1953
- run: mix coveralls.circle
2054
- save_cache:
21-
key: v2-dependency-cache-{{ checksum "mix.lock" }}
55+
key: lint-<<parameters.version>>-{{ checksum "mix.lock" }}
2256
paths:
23-
- _build
24-
- deps
57+
- "deps"
58+
- "_build"
59+
- "~/.mix"
60+
61+
workflows:
62+
version: 2.1
63+
testing_all_versions:
64+
jobs:
65+
- build:
66+
name: "Test Elixir 1.8.1"
67+
version: 1.8.1
68+
- build:
69+
name: "Test Elixir 1.7.4"
70+
version: 1.7.4
71+
- build:
72+
name: "Test Elixir 1.6.6"
73+
version: 1.6.6
74+
- build:
75+
name: "Test Elixir 1.5.3"
76+
version: 1.5.3
77+
- build:
78+
name: "Test Elixir 1.4.5"
79+
version: 1.4.5
80+
- lint:
81+
name: "Check Formatting, Types and Coverage"

mix.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ defmodule Sqlitex.Mixfile do
3636
{:esqlite, "~> 0.4"},
3737
{:decimal, "~> 1.7"},
3838
{:credo, "~> 0.10", only: [:dev, :test]},
39-
{:dialyxir, "~> 1.0.0-rc.4", only: :dev, runtime: false},
39+
{:dialyxir, "~> 1.0.0-rc.4", only: [:dev, :test], runtime: false},
4040
{:excoveralls, "~> 0.10", only: :test},
4141
{:ex_doc, "~> 0.20", only: :docs, runtime: false},
4242
{:excheck, "~> 0.6", only: :test},

0 commit comments

Comments
 (0)