mirror of
https://github.com/ENSL/ensl.org.git
synced 2024-12-27 04:51:14 +00:00
Try circle CI integration
This commit is contained in:
parent
d539a95c68
commit
92ee3f9ba4
2 changed files with 98 additions and 4 deletions
98
.circleci/config.yml
Normal file
98
.circleci/config.yml
Normal file
|
@ -0,0 +1,98 @@
|
|||
version: 2
|
||||
|
||||
references:
|
||||
default_docker_ruby_executor: &default_docker_ruby_executor
|
||||
image: circleci/ruby:2.6.5-buster-node-browsers
|
||||
environment:
|
||||
RACK_ENV: test
|
||||
RAILS_ENV: test
|
||||
mysql: &mysql
|
||||
image: cricleci/mysql:latest
|
||||
environment:
|
||||
MYSQL_DATABASE: ensl
|
||||
MYSQL_USER: ensl
|
||||
MYSQL_USERNAME: ensl
|
||||
MYSQL_PASSWORD: ensl
|
||||
MYSQL_ROOT_PASSWORD: ensl
|
||||
MYSQL_ROOT_HOST: %
|
||||
|
||||
jobs:
|
||||
build:
|
||||
docker:
|
||||
- *default_docker_ruby_executor
|
||||
steps:
|
||||
- checkout
|
||||
# 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
|
||||
# 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
|
||||
- *mysql
|
||||
steps:
|
||||
- checkout
|
||||
- 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
|
||||
TESTFILES=$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
||||
bundle exec rspec $TESTFILES --profile 10 --format RspecJunitFormatter --out /tmp/test-results/rspec.xml --format progress
|
||||
- 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
|
|
@ -1,4 +0,0 @@
|
|||
database:
|
||||
override:
|
||||
- mv config/database.circle.yml config/database.yml
|
||||
- bundle exec rake db:create db:schema:load --trace
|
Loading…
Reference in a new issue