50 lines
1.4 KiB
YAML
50 lines
1.4 KiB
YAML
default:
|
|
image: codemoon:latest
|
|
|
|
workflow:
|
|
rules:
|
|
- if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
|
|
# don't run a push pipeline if a merge request pipeline if a merge request exists
|
|
when: never
|
|
- when: always
|
|
|
|
stages:
|
|
- lint
|
|
- test
|
|
|
|
|
|
rubocop:
|
|
stage: lint
|
|
rules:
|
|
- if: '$CI_MERGE_REQUEST_ID'
|
|
when: always
|
|
- when: never
|
|
script:
|
|
- source /home/codeocean/.rvm/scripts/rvm
|
|
- bundle install
|
|
- echo $CI_MERGE_REQUEST_DIFF_BASE_SHA
|
|
- DIFF=$(git diff --name-only --diff-filter=d $CI_MERGE_REQUEST_DIFF_BASE_SHA)
|
|
- echo $DIFF
|
|
- "if [[ ! -z $DIFF ]]; then bundle exec rubocop --force-exclusion --parallel --display-style-guide $DIFF; fi"
|
|
allow_failure: true
|
|
|
|
rspec:
|
|
stage: test
|
|
before_script:
|
|
- sudo -u postgres /usr/lib/postgresql/13/bin/postgres -D /etc/postgresql/13/main/ &
|
|
- sleep 3
|
|
- sudo wrapdocker
|
|
- for f in action_mailer.yml database.yml secrets.yml code_ocean.yml docker.yml.erb mnemosyne.yml; do if [ ! -f config/$f ]; then cp config/$f.ci config/$f; fi; done
|
|
- source /home/codeocean/.rvm/scripts/rvm
|
|
- bundle install
|
|
- yarn install
|
|
- export RAILS_ENV=test
|
|
- rake db:create
|
|
- rake db:schema:load
|
|
- rake db:migrate
|
|
- docker login -u "${DOCKERHUB_USER}" -p "${DOCKERHUB_PASS}"
|
|
- docker pull openhpi/co_execenv_java:8-antlr
|
|
script:
|
|
- rspec --format progress
|
|
coverage: '/\(\d+.\d+\%\) covered/'
|