#-- copyright # OpenProject is an open source project management software. # Copyright (C) 2012-2020 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-2017 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.6.6 sudo: required dist: xenial cache: bundler: true directories: - public/assets - app/assets/javascripts/bundles - app/assets/javascripts/locales 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 # 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 bundler_args: --binstubs --without development production docker stages: - prepare cache - test jobs: include: - stage: prepare cache name: 'Prepare cache' script: # Run the dangerfile - bash script/ci/dangerfile.sh # Set up caching - 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: 'spec_legacy (1/1)' script: - bash script/ci/setup.sh spec_legacy - bash script/ci/runner.sh spec_legacy 1 1 - stage: test name: 'units (1/4)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 4 1 - stage: test name: 'units (2/4)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 4 2 - stage: test name: 'units (3/4)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 4 3 - stage: test name: 'units (4/4)' script: - bash script/ci/setup.sh units - bash script/ci/runner.sh units 4 4 - stage: test name: 'features (1/4)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 4 1 - stage: test name: 'features (2/4)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 4 2 - stage: test name: 'features (3/4)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 4 3 - stage: test name: 'features (4/4)' script: - bash script/ci/setup.sh features - bash script/ci/runner.sh features 4 4 - stage: test name: 'plugins:units (1/1)' script: - bash script/ci/setup.sh plugins:units - bash script/ci/runner.sh plugins:units 1 1 if: head_branch !~ /^core\// - stage: test name: 'plugins:features (1/1)' script: - bash script/ci/setup.sh plugins:features - bash script/ci/runner.sh plugins:features 1 1 if: head_branch !~ /^core\// - stage: test name: 'plugins:cucumber (1/1)' script: - bash script/ci/setup.sh plugins:cucumber - bash script/ci/runner.sh plugins:cucumber 1 1 if: head_branch !~ /^core\// addons: chrome: stable postgresql: "9.6"