language: ruby cache: bundler stages: - name: unit if: type IN (push, pull_request) - name: integration if: type IN (api) - name: periodic if: type IN (cron) - name: cleanup if: type IN (cron) jobs: include: # unit - stage: unit name: unit tests script: bundle exec rake test:unit rvm: - 2.3 - 2.4 - 2.5 - jruby-9.1.5 - jruby-9.1.14 - jruby-1.7.19 - stage: unit name: pronto code review script: | git remote add upstream https://github.com/gooddata/gooddata-ruby.git git fetch upstream master bundle exec pronto run -c upstream/master --exit-code - stage: unit name: sdk vcr tests script: VCR_RECORD_MODE=none bundle exec rake test:sdk rvm: jruby-9.1.14 - stage: unit name: sdk vcr tests (project) script: VCR_RECORD_MODE=none bundle exec rake test:project rvm: jruby-9.1.14 # integration - &lcm-integration-tests stage: integration name: lcm integration tests script: | bundle exec rake -f lcm.rake docker:build bundle exec rake -f lcm.rake docker:bundle bundle exec rake -f lcm.rake test:integration:docker rvm: - jruby-9.1.7 - &sdk-integration-tests stage: integration name: sdk integration tests script: bundle exec rake test:sdk rvm: 2.5 env: VCR_ON=false - &sdk-integration-tests-project stage: integration name: sdk integration tests (project) script: bundle exec rake test:project env: VCR_ON=false rvm: 2.5 # periodic # staging 1 - <<: *lcm-integration-tests stage: periodic name: staging1 - lcm integration tests env: - GD_ENV=staging - VCR_ON=false - <<: *sdk-integration-tests stage: periodic name: staging1 - sdk integration tests env: - GD_ENV=staging - VCR_ON=false - <<: *sdk-integration-tests-project stage: periodic name: staging1 - sdk integration tests (project) env: - GD_ENV=staging - VCR_ON=false # staging 2 - <<: *lcm-integration-tests stage: periodic name: staging2 - lcm integration tests env: - GD_ENV=testing - VCR_ON=false - <<: *sdk-integration-tests stage: periodic name: staging2 - sdk integration tests env: - GD_ENV=testing - VCR_ON=false - <<: *sdk-integration-tests-project stage: periodic name: staging2 - sdk integration tests (project) env: - GD_ENV=testing - VCR_ON=false # staging 3 - <<: *lcm-integration-tests stage: periodic name: staging3 - lcm integration tests env: - GD_ENV=development - VCR_ON=false - <<: *sdk-integration-tests stage: periodic name: staging3 - sdk integration tests env: - GD_ENV=development - VCR_ON=false - <<: *sdk-integration-tests-project stage: periodic name: staging3 - sdk integration tests (project) env: - GD_ENV=development - VCR_ON=false - &cleanup stage: cleanup name: staging1 - test environment clean-up script: bundle exec ruby bin/test_projects_cleanup.rb -f env: GD_ENV=staging - <<: *cleanup name: staging2 - test environment clean-up env: GD_ENV=testing - <<: *cleanup name: staging3 - test environment clean-up env: GD_ENV=development notifications: slack: secure: TyYks8rEBJMouWRjRtHZJJm+BIajxgwsoSIpxidZmD5zRk5ssEkGVbuYIvjUN+if1NyM1bmWspTSVX+8g5IDmt9PgcujXVqCbPRvfK90r3obs8A5pHbDnKEue6inqYUjNoqa1D6PkWTS1dTb6xvy8WiAwMGqoFGHnlNs4WFF9N4= on_pull_requests: false