mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-27 21:10:54 +00:00
125 lines
3.9 KiB
YAML
125 lines
3.9 KiB
YAML
version: 2
|
|
|
|
references:
|
|
default_docker_ruby_executor: &default_docker_ruby_executor
|
|
image: circleci/ruby:2.6.5-buster-node-browsers
|
|
environment:
|
|
BUNDLE_JOBS: '3'
|
|
BUNDLE_RETRY: '3'
|
|
BUNDLE_PATH: vendor/bundle
|
|
RACK_ENV: test
|
|
RAILS_ENV: test
|
|
MYSQL_HOST: '127.0.0.1'
|
|
mariadb: &mariadb
|
|
image: circleci/mariadb:10.1.44
|
|
environment:
|
|
MYSQL_DATABASE: ensl_test
|
|
MYSQL_USER: ensl
|
|
MYSQL_PASSWORD: ensl
|
|
MYSQL_ROOT_PASSWORD: ensl
|
|
MYSQL_ROOT_HOST: "%"
|
|
|
|
jobs:
|
|
build:
|
|
environment:
|
|
CC_TEST_REPORTER_ID: b3db5b7df9a0a1d0fd3503e72d7431ffbfa172492c2840d590ccb2fafd9172d3
|
|
docker:
|
|
- *default_docker_ruby_executor
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Bundle Update
|
|
command: gem update --system && gem install bundler
|
|
# Which version of bundler?
|
|
- run:
|
|
name: Which bundler?
|
|
command: bundle -v
|
|
# bundle cache
|
|
- restore_cache:
|
|
keys:
|
|
- rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
|
|
- rails-demo-bundle-v2-
|
|
- run:
|
|
name: Bundle Install
|
|
command: bundle check || bundle install
|
|
# Store bundle cache
|
|
- save_cache:
|
|
key: rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
|
|
paths:
|
|
- vendor/bundle
|
|
# - run:
|
|
# name: Setup dependencies
|
|
# command: |
|
|
# sudo composer self-update
|
|
# composer install -n --prefer-dist
|
|
# download test reporter as a static binary
|
|
# - run:
|
|
# name: Setup Code Climate test-reporter
|
|
# command: |
|
|
# curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
|
# chmod +x ./cc-test-reporter
|
|
# Only necessary if app uses webpacker or yarn in some other way
|
|
#- restore_cache:
|
|
# keys:
|
|
# - rails-demo-yarn-{{ checksum "yarn.lock" }}
|
|
# - rails-demo-yarn-
|
|
#- run:
|
|
# name: Yarn Install
|
|
# command: yarn install --cache-folder ~/.cache/yarn
|
|
# Store yarn / webpacker cache
|
|
#- save_cache:
|
|
# key: rails-demo-yarn-{{ checksum "yarn.lock" }}
|
|
# paths:
|
|
# - ~/.cache/yarn
|
|
test:
|
|
parallelism: 3
|
|
docker:
|
|
- *default_docker_ruby_executor
|
|
- *mariadb
|
|
steps:
|
|
- add_ssh_keys:
|
|
fingerprints:
|
|
- "b7:35:a6:4e:9b:0d:6d:d4:78:1e:9a:97:2a:66:6b:be"
|
|
- checkout
|
|
- run:
|
|
name: Bundle Update
|
|
command: gem update --system && gem install bundler
|
|
- restore_cache:
|
|
keys:
|
|
- rails-demo-bundle-v2-{{ checksum "Gemfile.lock" }}
|
|
- rails-demo-bundle-v2-
|
|
- run:
|
|
name: Bundle Install
|
|
command: bundle check || bundle install
|
|
#- restore_cache:
|
|
# keys:
|
|
# - rails-demo-yarn-{{ checksum "yarn.lock" }}
|
|
# - rails-demo-yarn-
|
|
- run:
|
|
name: Wait for DB
|
|
command: dockerize -wait tcp://localhost:3306 -timeout 1m
|
|
- run:
|
|
name: Database setup
|
|
command: bundle exec rails db:schema:load --trace
|
|
# Run rspec in parallel
|
|
- run:
|
|
command: |
|
|
mkdir /tmp/test-results
|
|
# ./cc-test-reporter before-build
|
|
TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
|
bundle exec rspec $TESTFILES --profile 10 -r rspec_junit_formatter --format RspecJunitFormatter --out /tmp/test-results/rspec.xml --format progress
|
|
# ./cc-test-reporter after-build --coverage-input-type clover --exit-code $?
|
|
- store_test_results:
|
|
path: /tmp/test-results
|
|
- store_artifacts:
|
|
path: /tmp/test-results
|
|
destination: test-results
|
|
|
|
workflows:
|
|
version: 2
|
|
build_and_test:
|
|
jobs:
|
|
- build
|
|
- test:
|
|
requires:
|
|
- build
|