#-- copyright # OpenProject is an open source project management software. # Copyright (C) 2012-2021 the OpenProject GmbH # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License version 3. # # OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: # Copyright (C) 2006-2013 Jean-Philippe Lang # Copyright (C) 2010-2013 the ChiliProject Team # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. # # See docs/COPYRIGHT.rdoc for more details. #++ language: ruby rvm: - 2.7.2 sudo: required dist: xenial cache: bundler: true directories: - public/assets - frontend/src/locales - ~/.webdrivers branches: only: - master - dev - bim-dev - /^(stable|release)\/.*$/ env: global: - CI=true - RAILS_ENV=test before_install: # work around https://github.com/travis-ci/travis-ci/issues/8969 # Currently causes error but as it will probably be required later on again, # I leave the code as a reminder. # - travis_retry gem update --system # Install latest bundler - gem install bundler # We do not want those gem groups - bundle config set without 'development production docker' # Install Node latest LTS # This should only be necessary when preparing the cache or for npm test runs # but installing later fails for unknown reasons. - nvm install --lts stages: - prepare cache - test jobs: include: - stage: prepare cache name: 'Prepare cache' script: # Run the dangerfile and set up caching # Run in one command to fail early - bundle binstubs danger --force - bash script/ci/dangerfile.sh && bash script/ci/db_setup.sh && bash script/ci/cache_prepare.sh - stage: test name: 'npm' script: - bash script/ci/setup.sh npm - bash script/ci/runner.sh npm - stage: test name: 'legacy specs (1/1)' script: - bash script/ci/setup.sh spec_legacy - bash script/ci/runner.sh spec_legacy 1 1 - stage: test name: 'units (1/5)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 5 1 - stage: test name: 'units (2/5)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 5 2 - stage: test name: 'units (3/5)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 5 3 - stage: test name: 'units (4/5)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 5 4 - stage: test name: 'units (5/5)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 5 5 - stage: test name: 'features (1/6)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 6 1 - stage: test name: 'features (2/6)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 6 2 - stage: test name: 'features (3/6)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 6 3 - stage: test name: 'features (4/6)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 6 4 - stage: test name: 'features (5/6)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 6 5 - stage: test name: 'features (6/6)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 6 6 addons: chrome: stable postgresql: "9.6"