105 lines
3.0 KiB
YAML
105 lines
3.0 KiB
YAML
version: 2.1
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: cimg/ruby:3.3.0-browsers
|
|
working_directory: ~/app
|
|
environment:
|
|
RAILS_ENV: test
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- ruby-dependencies-v8-{{ checksum "Gemfile.lock" }}
|
|
- ruby-dependencies-v8
|
|
- run:
|
|
name: Set bundle path
|
|
command: bundle config --local path vendor/bundle
|
|
- run:
|
|
name: Bundle Install
|
|
command: |
|
|
bundle check || bundle install --deployment
|
|
- run:
|
|
name: Clean old gem versions
|
|
command: bundle clean --force
|
|
- save_cache:
|
|
paths:
|
|
- vendor/bundle
|
|
key: ruby-dependencies-v8-{{ checksum "Gemfile.lock" }}
|
|
|
|
run_tests:
|
|
docker:
|
|
- image: cimg/ruby:3.3.0-browsers
|
|
- image: cimg/postgres:16.2
|
|
environment:
|
|
POSTGRES_HOST_AUTH_METHOD: trust
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: password
|
|
environment:
|
|
RAILS_ENV: test
|
|
SECRET_KEY_BASE: dummy
|
|
MAIL_FROM_ADDRESS: support@mystore.com
|
|
CIRCLE_TEST_REPORTS: /tmp/test-results
|
|
CIRCLE_ARTIFACTS: /tmp/test-artifacts
|
|
working_directory: ~/app
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- ruby-dependencies-v8-{{ checksum "Gemfile.lock" }}
|
|
- ruby-dependencies-v8
|
|
- run:
|
|
name: Set bundle path
|
|
command: bundle config --local path vendor/bundle
|
|
- run:
|
|
name: Wait for DB
|
|
command: dockerize -wait tcp://localhost:5432
|
|
- run:
|
|
name: Setup DB
|
|
command: bundle exec rails db:create db:schema:load
|
|
- run:
|
|
name: Precompile assets
|
|
command: SECRET_KEY_BASE_DUMMY=1 bundle exec rails assets:precompile
|
|
- run:
|
|
name: Run Rspec
|
|
command: |
|
|
mkdir -p /tmp/test-results
|
|
circleci tests glob "spec/**/*_spec.rb" | circleci tests run --command="xargs bundle exec rspec --format documentation --format RspecJunitFormatter -o /tmp/test-results/rspec.xml" --verbose --split-by=timings
|
|
- store_test_results:
|
|
path: /tmp/test-results
|
|
- store_artifacts:
|
|
path: /tmp/test-artifacts
|
|
|
|
run_brakeman:
|
|
docker:
|
|
- image: cimg/ruby:3.3.0-browsers
|
|
environment:
|
|
RAILS_ENV: test
|
|
working_directory: ~/app
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- ruby-dependencies-v8-{{ checksum "Gemfile.lock" }}
|
|
- ruby-dependencies-v8
|
|
- run:
|
|
name: Set bundle path
|
|
command: bundle config --local path vendor/bundle
|
|
- run:
|
|
name: Run Brakeman
|
|
command: bundle exec brakeman -f html -o /tmp/brakeman.html
|
|
- store_artifacts:
|
|
path: /tmp/brakeman.html
|
|
|
|
workflows:
|
|
version: 2
|
|
main:
|
|
jobs:
|
|
- build
|
|
- run_tests:
|
|
requires:
|
|
- build
|
|
- run_brakeman:
|
|
requires:
|
|
- build
|