#-- copyright # OpenProject is a project management system. # Copyright (C) 2012-2018 the OpenProject Foundation (OPF) # # 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-2018 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 doc/COPYRIGHT.rdoc for more details. #++ language: ruby rvm: - 2.6.1 sudo: required dist: trusty cache: bundler: true directories: - public/assets - app/assets/javascripts/bundles - app/assets/javascripts/locales branches: only: - master - dev - /^(stable|release)\/.*$/ env: global: - CI=true - RAILS_ENV=test before_install: # work around https://github.com/travis-ci/travis-ci/issues/8969 - travis_retry gem update --system # Don't install 1.16.3 - gem install bundler -v 2.0.1 --no-document # 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: - 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) - mysql' script: - bash script/ci/setup.sh spec_legacy mysql - bash script/ci/runner.sh spec_legacy 1 1 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'spec_legacy (1/1) - postgres standard' script: - bash script/ci/setup.sh spec_legacy postgres - bash script/ci/runner.sh spec_legacy 1 1 - stage: test name: 'spec_legacy (1/1) - postgres bim' script: - bash script/ci/setup.sh spec_legacy postgres bim - bash script/ci/runner.sh spec_legacy 1 1 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'units (1/4) - mysql' script: - bash script/ci/setup.sh units mysql - bash script/ci/runner.sh units 4 1 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'units (1/4) - postgres standard' script: - bash script/ci/setup.sh units postgres - bash script/ci/runner.sh units 4 1 - stage: test name: 'units (1/4) - postgres bim' script: - bash script/ci/setup.sh units postgres bim - bash script/ci/runner.sh units 4 1 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'units (2/4) - mysql' script: - bash script/ci/setup.sh units mysql - bash script/ci/runner.sh units 4 2 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'units (2/4) - postgres standard' script: - bash script/ci/setup.sh units postgres - bash script/ci/runner.sh units 4 2 - stage: test name: 'units (2/4) - postgres bim' script: - bash script/ci/setup.sh units postgres bim - bash script/ci/runner.sh units 4 2 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'units (3/4) - mysql' script: - bash script/ci/setup.sh units mysql - bash script/ci/runner.sh units 4 3 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'units (3/4) - postgres standard' script: - bash script/ci/setup.sh units postgres - bash script/ci/runner.sh units 4 3 - stage: test name: 'units (3/4) - postgres bim' script: - bash script/ci/setup.sh units postgres bim - bash script/ci/runner.sh units 4 3 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'units (4/4) - mysql' script: - bash script/ci/setup.sh units mysql - bash script/ci/runner.sh units 4 4 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'units (4/4) - postgres standard' script: - bash script/ci/setup.sh units postgres - bash script/ci/runner.sh units 4 4 - stage: test name: 'units (4/4) - postgres bim' script: - bash script/ci/setup.sh units postgres bim - bash script/ci/runner.sh units 4 4 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'features (1/4) - mysql' script: - bash script/ci/setup.sh features mysql - bash script/ci/runner.sh features 4 1 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'features (1/4) - postgres standard' script: - bash script/ci/setup.sh features postgres - bash script/ci/runner.sh features 4 1 - stage: test name: 'features (1/4) - postgres bim' script: - bash script/ci/setup.sh features postgres bim - bash script/ci/runner.sh features 4 1 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'features (2/4) - mysql' script: - bash script/ci/setup.sh features mysql - bash script/ci/runner.sh features 4 2 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'features (2/4) - postgres standard' script: - bash script/ci/setup.sh features postgres - bash script/ci/runner.sh features 4 2 - stage: test name: 'features (2/4) - postgres bim' script: - bash script/ci/setup.sh features postgres bim - bash script/ci/runner.sh features 4 2 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'features (3/4) - mysql' script: - bash script/ci/setup.sh features mysql - bash script/ci/runner.sh features 4 3 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'features (3/4) - postgres standard' script: - bash script/ci/setup.sh features postgres - bash script/ci/runner.sh features 4 3 - stage: test name: 'features (3/4) - postgres bim' script: - bash script/ci/setup.sh features postgres bim - bash script/ci/runner.sh features 4 3 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'features (4/4) - mysql' script: - bash script/ci/setup.sh features mysql - bash script/ci/runner.sh features 4 4 if: env(SKIP_MYSQL_TESTING) IS blank - stage: test name: 'features (4/4) - postgres standard' script: - bash script/ci/setup.sh features postgres - bash script/ci/runner.sh features 4 4 - stage: test name: 'features (4/4) - postgres bim' script: - bash script/ci/setup.sh features postgres bim - bash script/ci/runner.sh features 4 4 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'plugins:units (1/1) - mysql' script: - bash script/ci/setup.sh plugins:units mysql - bash script/ci/runner.sh plugins:units 1 1 if: env(SKIP_MYSQL_TESTING) IS blank AND head_branch !~ /^core\// - stage: test name: 'plugins:units (1/1) - postgres standard' script: - bash script/ci/setup.sh plugins:units postgres - bash script/ci/runner.sh plugins:units 1 1 if: head_branch !~ /^core\// - stage: test name: 'plugins:units (1/1) - postgres bim' script: - bash script/ci/setup.sh plugins:units postgres bim - bash script/ci/runner.sh plugins:units 1 1 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'plugins:features (1/1) - mysql' script: - bash script/ci/setup.sh plugins:features mysql - bash script/ci/runner.sh plugins:features 1 1 if: env(SKIP_MYSQL_TESTING) IS blank AND head_branch !~ /^core\// - stage: test name: 'plugins:features (1/1) - postgres standard' script: - bash script/ci/setup.sh plugins:features postgres - bash script/ci/runner.sh plugins:features 1 1 if: head_branch !~ /^core\// - stage: test name: 'plugins:features (1/1) - postgres bim' script: - bash script/ci/setup.sh plugins:features postgres bim - bash script/ci/runner.sh plugins:features 1 1 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) - stage: test name: 'plugins:cucumber (1/1) - mysql' script: - bash script/ci/setup.sh plugins:cucumber mysql - bash script/ci/runner.sh plugins:cucumber 1 1 if: env(SKIP_MYSQL_TESTING) IS blank AND head_branch !~ /^core\// - stage: test name: 'plugins:cucumber (1/1) - postgres standard' script: - bash script/ci/setup.sh plugins:cucumber postgres - bash script/ci/runner.sh plugins:cucumber 1 1 if: head_branch !~ /^core\// - stage: test name: 'plugins:cucumber (1/1) - postgres bim' script: - bash script/ci/setup.sh plugins:cucumber postgres bim - bash script/ci/runner.sh plugins:cucumber 1 1 bim if: head_branch =~ /^(bim\/|dev|release\/)/ OR (head_branch IS blank AND branch =~ /^(bim\/|dev|release\/)/) addons: chrome: stable postgresql: "9.6"