Skip to content

Commit 1016f61

Browse files
arichiardibbatsov
authored andcommitted
Use CircleCI for Continuous Integration (#602)
1 parent 2249b55 commit 1016f61

File tree

4 files changed

+185
-60
lines changed

4 files changed

+185
-60
lines changed

.circleci/config.yml

+183
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
version: 2.1
2+
3+
######################################################################
4+
#
5+
# Start of general purpose config. These can plausibly go into orbs
6+
#
7+
######################################################################
8+
9+
# Default settings for executors
10+
11+
defaults: &defaults
12+
working_directory: ~/repo
13+
environment:
14+
LEIN_ROOT: "true" # we intended to run lein as root
15+
JVM_OPTS: -Xmx3200m # limit the maximum heap size to prevent out of memory errors
16+
17+
# Runners for OpenJDK 8 and 11
18+
19+
executors:
20+
openjdk8:
21+
docker:
22+
- image: circleci/clojure:openjdk-8-lein-2.9.1-node
23+
<<: *defaults
24+
openjdk11:
25+
docker:
26+
- image: circleci/clojure:openjdk-11-lein-2.9.1-node
27+
<<: *defaults
28+
29+
# Runs a given set of steps, with some standard pre- and post-
30+
# steps, including restoring of cache, saving of cache.
31+
#
32+
# we also install `make` here.
33+
#
34+
# Adapted from https://github.com/lambdaisland/meta/blob/master/circleci/clojure_orb.yml
35+
36+
commands:
37+
with_cache:
38+
description: |
39+
Run a set of steps with Maven dependencies and Clojure classpath cache
40+
files cached.
41+
This command restores ~/.m2 and .cpcache if they were previously cached,
42+
then runs the provided steps, and finally saves the cache.
43+
The cache-key is generated based on the contents of `deps.edn` present in
44+
the `working_directory`.
45+
parameters:
46+
steps:
47+
type: steps
48+
files:
49+
description: Files to consider when creating the cache key
50+
type: string
51+
default: "deps.edn project.clj build.boot"
52+
cache_version:
53+
type: string
54+
description: "Change this value to force a cache update"
55+
default: "1"
56+
steps:
57+
- run:
58+
name: Install make
59+
command: |
60+
sudo apt-get install make
61+
- run:
62+
name: Generate Cache Checksum
63+
command: |
64+
for file in << parameters.files >>
65+
do
66+
find . -name $file -exec cat {} +
67+
done | shasum | awk '{print $1}' > /tmp/clojure_cache_seed
68+
- restore_cache:
69+
key: clojure-<< parameters.cache_version >>-{{ checksum "/tmp/clojure_cache_seed" }}
70+
- steps: << parameters.steps >>
71+
- save_cache:
72+
paths:
73+
- ~/.m2
74+
- .cpcache
75+
- repo
76+
key: clojure-<< parameters.cache_version >>-{{ checksum "/tmp/clojure_cache_seed" }}
77+
78+
# The jobs are relatively simple. One runs utility commands against
79+
# latest stable JDK + Clojure, the other against specified versions
80+
81+
jobs:
82+
83+
util_job:
84+
description: |
85+
Running utility commands/checks (linter etc.)
86+
Always uses Java11 and Clojure 1.10
87+
parameters:
88+
steps:
89+
type: steps
90+
executor: openjdk11
91+
environment:
92+
VERSION: "1.10"
93+
steps:
94+
- checkout
95+
- with_cache:
96+
cache_version: "1.10"
97+
steps: << parameters.steps >>
98+
99+
100+
test_code:
101+
description: |
102+
Run tests against given version of JDK and Clojure
103+
parameters:
104+
jdk_version:
105+
description: Version of JDK to test against
106+
type: string
107+
clojure_version:
108+
description: Version of Clojure to test against
109+
type: string
110+
executor: << parameters.jdk_version >>
111+
environment:
112+
VERSION: << parameters.clojure_version >>
113+
steps:
114+
- checkout
115+
- with_cache:
116+
cache_version: << parameters.clojure_version >>
117+
steps:
118+
- run:
119+
name: Running tests with inlined deps
120+
command: make test smoketest
121+
122+
######################################################################
123+
#
124+
# End general purpose configs
125+
#
126+
######################################################################
127+
128+
129+
# The ci-test-matrix does the following:
130+
#
131+
# - run tests against the target matrix
132+
# - Java 8 and 11
133+
# - Clojure 1.8, 1.9, 1.10, master
134+
# - linter, eastwood and cljfmt
135+
# - runs code coverage report
136+
137+
workflows:
138+
version: 2.1
139+
ci-test-matrix:
140+
jobs:
141+
- test_code:
142+
name: Java 8, Clojure 1.8
143+
clojure_version: "1.8"
144+
jdk_version: openjdk8
145+
- test_code:
146+
name: Java 8, Clojure 1.9
147+
clojure_version: "1.9"
148+
jdk_version: openjdk8
149+
- test_code:
150+
name: Java 8, Clojure 1.10
151+
clojure_version: "1.10"
152+
jdk_version: openjdk8
153+
- test_code:
154+
name: Java 8, Clojure master
155+
clojure_version: "master"
156+
jdk_version: openjdk8
157+
- test_code:
158+
name: Java 11, Clojure 1.8
159+
clojure_version: "1.8"
160+
jdk_version: openjdk11
161+
- test_code:
162+
name: Java 11, Clojure 1.9
163+
clojure_version: "1.9"
164+
jdk_version: openjdk11
165+
- test_code:
166+
name: Java 11, Clojure 1.10
167+
clojure_version: "1.10"
168+
jdk_version: openjdk11
169+
- test_code:
170+
name: Java 11, Clojure master
171+
clojure_version: "master"
172+
jdk_version: openjdk11
173+
- util_job:
174+
name: Code Linting
175+
steps:
176+
- run:
177+
name: Running Eastwood
178+
command: |
179+
make eastwood
180+
- run:
181+
name: Running cljfmt
182+
command: |
183+
make cljfmt

.travis.yml

-58
This file was deleted.

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[![Build Status](https://travis-ci.org/clojure-emacs/cider-nrepl.png?branch=master)](https://travis-ci.org/clojure-emacs/cider-nrepl)
1+
[![CircleCI](https://circleci.com/gh/clojure-emacs/cider-nrepl/tree/master.svg?style=svg)](https://circleci.com/gh/clojure-emacs/cider-nrepl/tree/master)
22
[![Dependencies Status](https://versions.deps.co/clojure-emacs/cider-nrepl/status.svg)](https://versions.deps.co/clojure-emacs/cider-nrepl)
33
[![Coverage](https://codecov.io/gh/clojure-emacs/cider-nrepl/branch/master/graph/badge.svg)](https://codecov.io/gh/clojure-emacs/cider-nrepl/)
44
[![cljdoc badge](https://cljdoc.org/badge/cider/cider-nrepl)](https://cljdoc.org/d/cider/cider-nrepl/CURRENT)

test/clj/cider/nrepl/middleware/debug_integration_test.clj

+1-1
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@
592592
;; and instrument the source, which is in a jar file. Note that this function
593593
;; is used because it is not marked as a :source-dep, so we can rely on the
594594
;; namespace remaining unmunged, which is important when these tests run on
595-
;; travis CI.
595+
;; CI.
596596
(--> :eval "(ns user.test.step-in
597597
(:require [nrepl.server :as server]))")
598598
(<-- {:ns "user.test.step-in"})

0 commit comments

Comments
 (0)