modified circle.yml to 2.0 format (initial)

This commit is contained in:
Wyatt Johnson
2018-02-27 17:38:55 -07:00
parent 12b98d0fc6
commit b9b6f035f8
+103 -73
View File
@@ -1,75 +1,105 @@
machine:
node:
version: 8
services:
- docker
- redis
environment:
PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"
NODE_ENV: "test"
MOCHA_FILE: "${CIRCLE_TEST_REPORTS}/junit/test-results.xml"
MOCHA_REPORTER: "mocha-junit-reporter"
pre:
# TODO: use the following to add in support for MongoDB 3.4.
# # Upgrade the database version to 3.4.
# - sudo apt-get purge mongodb-org*
# - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
# - echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list
# - sudo apt-get update
# - sudo apt-get install -y mongodb-org
# - sudo service mongod restart
version: 2
# Force sync the time.
- date
- sudo service ntp stop
- sudo ntpdate -s time.nist.gov
- sudo service ntp start
- date
jobs:
npm_dependencies:
working_directory: ~/coralproject/talk
docker:
- image: circleci/node:8
steps:
- checkout
- attach_workspace:
at: ~/coralproject/talk
- restore_cache:
key: dependency-cache-{{ checksum "package.json" }}-{{ checksum "yarn.lock" }}
- run:
name: Install dependancies
command: |
yarn global add node-gyp &&
yarn install --frozen-lockfile
- save_cache:
key: dependency-cache-{{ checksum "package.json" }}-{{ checksum "yarn.lock" }}
paths:
- ./node_modules
- persist_to_workspace:
root: .
paths: node_modules
lint:
working_directory: ~/coralproject/talk
docker:
- image: circleci/node:8
steps:
- checkout
- attach_workspace:
at: ~/coralproject/talk
- run:
name: Perform linting
command: yarn lint
build_assets:
working_directory: ~/coralproject/talk
docker:
- image: circleci/node:8
steps:
- checkout
- attach_workspace:
at: ~/coralproject/talk
- run:
name: Build static assets
command: yarn build
- persist_to_workspace:
root: .
paths: dist
test_unit:
working_directory: ~/coralproject/talk
docker:
- image: circleci/node:8
- image: circleci/mongo:3
- image: circleci/redis:4-alpine
environment:
NODE_ENV: test
MOCHA_FILE: /tmp/circleci-test-results/junit/test-results.xml
MOCHA_REPORTER: mocha-junit-reporter
steps:
- checkout
- attach_workspace:
at: ~/coralproject/talk
- run:
name: Setup the test results directory
command: mkdir -p /tmp/circleci-test-results
- run:
name: Run the unit tests
command: yarn test
- store_test_results:
path: /tmp/circleci-test-results
test_integration:
working_directory: ~/coralproject/talk
docker:
- image: circleci/node:8-browsers
- image: circleci/mongo:3
- image: circleci/redis:4-alpine
environment:
NODE_ENV: test
steps:
- run:
name: Setup the database with defaults
command: ./bin/cli setup --defaults
- run:
name: Run the integration tests
command: yarn e2e:ci
# Install chromium for e2e and remove old google-chrome
- sudo rm -rf /opt/google/chrome
- sudo rm -f /usr/bin/google-chrome*
- sudo apt-get update
- sudo apt-get install chromium-browser
dependencies:
override:
# Install node dependencies.
- yarn --version
- yarn global add node-gyp --force
- yarn
post:
# Build the static assets.
- yarn build
# Lint the project here, before tests are ran.
- yarn lint
database:
post:
# Initialize the settings in the database, this will create indicies for the
# database.
- ./bin/cli setup --defaults
- sleep 2
test:
override:
# Run the tests using the junit reporter.
- yarn test
# Run the end to end tests
- yarn e2e:ci
deployment:
release:
tag: /v[0-9]+(\.[0-9]+)*/
commands:
- bash ./scripts/docker.sh deploy
latest:
branch:
- master
- next
owner: coralproject
commands:
- bash ./scripts/docker.sh deploy
workflows:
version: 2
build-and-deploy:
jobs:
- npm_dependencies
- lint:
requires:
- npm_dependencies
- test_unit:
requires:
- npm_dependencies
- build_assets:
requires:
- npm_dependencies
- test_integration:
requires:
- build_assets