mirror of
https://github.com/metosin/reitit.git
synced 2026-01-09 16:49:50 +00:00
112 lines
3.2 KiB
YAML
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
|