reitit/.circleci/config.yml
2018-10-22 20:46:48 +02:00

112 lines
3.2 KiB
YAML

version: 2
jobs:
test-clj:
working_directory: ~/test
docker:
- image: clojure:lein-2.7.1
steps:
- checkout
- restore_cache:
keys:
- 'v1-clj-{{ checksum "project.clj" }}'
- 'v1-clj-'
- 'v1-test-'
- run:
name: Install modules
command: ./scripts/lein-modules install
- run:
name: Run tests
command: ./scripts/test.sh clj
- run:
name: Verify cljdoc.edn
command: curl -fsSL https://raw.githubusercontent.com/cljdoc/cljdoc/master/script/verify-cljdoc-edn | bash -s doc/cljdoc.edn
- store_test_results:
# path must be a directory under which there a subdirectories that
# contain the JUnit XML files.
path: ~/test/target/results
# - run:
# name: Run coverage
# command: ./scripts/submit-to-coveralls.sh clj
- save_cache:
key: 'v1-clj-{{ checksum "project.clj" }}'
paths:
- ~/.m2
- ~/.cljs/.aot_cache
test-cljs:
working_directory: ~/test
docker:
- image: circleci/clojure:lein-2.8.1-node-browsers
steps:
- checkout
- restore_cache:
keys:
- 'v1-cljs-{{ checksum "project.clj" }}-{{ checksum "package.json" }}'
- 'v1-cljs-'
- run:
name: Install npm dependencies
command: npm install
- run:
name: Install modules
command: ./scripts/lein-modules install
- run:
name: Run tests
command: ./scripts/test.sh cljs
- store_test_results:
path: ~/test/target/results
- save_cache:
key: 'v1-cljs-{{ checksum "project.clj" }}-{{ checksum "package.json" }}'
paths:
- ~/.m2
- ~/test/node_modules
build-docs:
working_directory: ~/build
docker:
- image: circleci/node:latest
steps:
- checkout
- run: rm package.json package-lock.json
- restore_cache:
keys:
- 'v1-gitbook-{{ checksum "book.json" }}'
- 'v1-gitbook-'
- run:
name: "Install GitBook"
command: npm install gitbook-cli && ./node_modules/.bin/gitbook install
- run:
name: "Clone gh-pages"
command: git clone --branch gh-pages git@github.com:metosin/reitit.git ~/gh-pages
- run:
name: Build the documentation
command: |
./node_modules/.bin/gitbook build
cp -r _book/* ~/gh-pages/
- add_ssh_keys:
fingerprints:
- "2d:eb:be:af:53:33:36:01:40:61:81:9d:76:84:8e:83"
- deploy:
name: Upload the documentation
command: |
cd ~/gh-pages
git config user.name "Automatic build"
git config user.email "noreply@metosin.fi"
git add -A
git commit -m "Build book from commit $CIRCLE_SHA1 [skip ci]"
git push
- save_cache:
key: 'v1-gitbook-{{ checksum "book.json" }}'
paths:
- node_modules
workflows:
version: 2
test-and-build-docs:
jobs:
- test-clj
- test-cljs
- build-docs:
filters:
branches:
only:
- master