diff --git a/Jenkinsfile b/Jenkinsfile index ddbd6bc4a89..c1f234a1065 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -50,11 +50,11 @@ pipeline { options { ansiColor('xterm') - parallelsAlwaysFailFast() } environment { - COMPOSE_FILE = 'docker-compose.new-jenkins.yml' + // include selenium while smoke is running locally + COMPOSE_FILE = 'docker-compose.new-jenkins.yml:docker-compose.new-jenkins-selenium.yml' GERRIT_PORT = '29418' GERRIT_URL = "$GERRIT_HOST:$GERRIT_PORT" @@ -154,7 +154,8 @@ pipeline { stage('Smoke Test') { steps { timeout(time: 10) { - sh 'build/new-jenkins/docker-compose-build.sh' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' sh 'build/new-jenkins/smoke-test.sh' } } diff --git a/Jenkinsfile.contract-tests b/Jenkinsfile.contract-tests index b81d95130dc..ad1790b61cb 100644 --- a/Jenkinsfile.contract-tests +++ b/Jenkinsfile.contract-tests @@ -36,7 +36,8 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' - sh 'build/new-jenkins/docker-compose-build.sh' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' // todo create contract tests script // sh 'build/new-jenkins/.sh' } diff --git a/Jenkinsfile.linters-js b/Jenkinsfile.linters-js index ddb25c9e767..cc2b315bdea 100644 --- a/Jenkinsfile.linters-js +++ b/Jenkinsfile.linters-js @@ -36,7 +36,6 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' - sh 'build/new-jenkins/docker-compose-build.sh' // Todo: create linters-js script // sh 'build/new-jenkins/.sh' } diff --git a/Jenkinsfile.rspec b/Jenkinsfile.rspec index a236cbb7361..dc112ba3ffa 100644 --- a/Jenkinsfile.rspec +++ b/Jenkinsfile.rspec @@ -36,7 +36,8 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' - sh 'build/new-jenkins/docker-compose-build.sh' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' // Todo: create script for rspec tests // sh 'build/new-jenkins/rspec-tests.sh' } diff --git a/Jenkinsfile.selenium.chrome b/Jenkinsfile.selenium.chrome index deac552224e..60a03d4d68b 100644 --- a/Jenkinsfile.selenium.chrome +++ b/Jenkinsfile.selenium.chrome @@ -25,7 +25,7 @@ pipeline { } environment { - COMPOSE_FILE = 'docker-compose.new-jenkins.yml' + COMPOSE_FILE = 'docker-compose.new-jenkins.yml:docker-compose.new-jenkins-selenium.yml' // 'refs/changes/63/181863/8' -> '63.181863.8' NAME = "${env.GERRIT_REFSPEC}".minus('refs/changes/').replaceAll('/','.') } @@ -38,7 +38,8 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' - sh 'build/new-jenkins/docker-compose-build.sh' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' // Todo: create script for selenium tests sh 'build/new-jenkins/smoke-test.sh' } diff --git a/Jenkinsfile.selenium.performance.chrome b/Jenkinsfile.selenium.performance.chrome index d2423c09f1a..a06d738a680 100644 --- a/Jenkinsfile.selenium.performance.chrome +++ b/Jenkinsfile.selenium.performance.chrome @@ -25,7 +25,7 @@ pipeline { } environment { - COMPOSE_FILE = 'docker-compose.new-jenkins.yml' + COMPOSE_FILE = 'docker-compose.new-jenkins.yml:docker-compose.new-jenkins-selenium.yml' // 'refs/changes/63/181863/8' -> '63.181863.8' NAME = "${env.GERRIT_REFSPEC}".minus('refs/changes/').replaceAll('/','.') } @@ -36,7 +36,8 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' - sh 'build/new-jenkins/docker-compose-build.sh' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' // Todo: create selenium performance chrome script // sh 'build/new-jenkins/.sh' } diff --git a/Jenkinsfile.vendored-gems b/Jenkinsfile.vendored-gems index 3550db8de66..c90fcd2759d 100644 --- a/Jenkinsfile.vendored-gems +++ b/Jenkinsfile.vendored-gems @@ -25,7 +25,7 @@ pipeline { } environment { - COMPOSE_FILE = 'docker-compose.new-vendored-gems.yml' + COMPOSE_FILE = 'docker-compose.new-jenkins.yml' // 'refs/changes/63/181863/8' -> '63.181863.8' NAME = "${env.GERRIT_REFSPEC}".minus('refs/changes/').replaceAll('/','.') } @@ -35,6 +35,8 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-database.sh' sh 'build/new-jenkins/test-gems.sh' } } diff --git a/Jenkinsfile.xbrowser b/Jenkinsfile.xbrowser index 45a0fcd8cdd..6a62e6d3616 100644 --- a/Jenkinsfile.xbrowser +++ b/Jenkinsfile.xbrowser @@ -25,7 +25,7 @@ pipeline { } environment { - COMPOSE_FILE = 'docker-compose.new-jenkins.yml' + COMPOSE_FILE = 'docker-compose.new-jenkins.yml:docker-compose.new-jenkins-selenium.yml' // 'refs/changes/63/181863/8' -> '63.181863.8' NAME = "${env.GERRIT_REFSPEC}".minus('refs/changes/').replaceAll('/','.') } @@ -36,7 +36,8 @@ pipeline { steps { timeout(time: 60) { sh 'printenv | sort' - sh 'build/new-jenkins/docker-compose-build.sh' + sh 'build/new-jenkins/docker-compose-build-up.sh' + sh 'build/new-jenkins/docker-compose-create-migrate-database.sh' sh 'build/new-jenkins/xbrowser-test.sh' } } diff --git a/build/new-jenkins/docker-compose-build-up.sh b/build/new-jenkins/docker-compose-build-up.sh new file mode 100755 index 00000000000..0883886a39d --- /dev/null +++ b/build/new-jenkins/docker-compose-build-up.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +docker-compose build +docker-compose up -d diff --git a/build/new-jenkins/docker-compose-build.sh b/build/new-jenkins/docker-compose-build.sh deleted file mode 100755 index 68c407dd2e6..00000000000 --- a/build/new-jenkins/docker-compose-build.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -export COMPOSE_FILE=docker-compose.new-jenkins.yml - -docker-compose build -docker-compose up -d -docker-compose run web bundle exec rails db:create db:migrate diff --git a/build/new-jenkins/docker-compose-create-database.sh b/build/new-jenkins/docker-compose-create-database.sh new file mode 100755 index 00000000000..1da342f6822 --- /dev/null +++ b/build/new-jenkins/docker-compose-create-database.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker-compose exec -T web bundle exec rails db:create diff --git a/build/new-jenkins/docker-compose-create-migrate-database.sh b/build/new-jenkins/docker-compose-create-migrate-database.sh new file mode 100755 index 00000000000..f32ff191ade --- /dev/null +++ b/build/new-jenkins/docker-compose-create-migrate-database.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +docker-compose exec -T web bundle exec rails db:create db:migrate diff --git a/build/new-jenkins/rspec-tests.sh b/build/new-jenkins/rspec-tests.sh index aad79eb0db1..839617d4518 100755 --- a/build/new-jenkins/rspec-tests.sh +++ b/build/new-jenkins/rspec-tests.sh @@ -1,9 +1,7 @@ #!/bin/bash -export COMPOSE_FILE=docker-compose.new-jenkins.yml - # Todo: build the spec list similar to how it currently is in rspect # spec_files=`find spec {gems,vendor}/plugins/*/spec_canvas -type f -name '*_spec.rb'|grep -v '/selenium/'|tr '\n' ' '` # Todo: run the specs in spec_files -# docker-compose run web bundle exec rspec -f doc --format html --out results.html spec_files +# docker-compose exec -T web bundle exec rspec -f doc --format html --out results.html spec_files diff --git a/build/new-jenkins/smoke-test.sh b/build/new-jenkins/smoke-test.sh index 9d447b002bf..549d953bea4 100755 --- a/build/new-jenkins/smoke-test.sh +++ b/build/new-jenkins/smoke-test.sh @@ -1,5 +1,3 @@ #!/bin/bash -export COMPOSE_FILE=docker-compose.new-jenkins.yml - -docker-compose run --rm web bundle exec rspec spec/selenium/login_logout_spec.rb -f doc --format html --out results.html +docker-compose exec -T web bundle exec rspec spec/selenium/login_logout_spec.rb -f doc --format html --out results.html diff --git a/build/new-jenkins/test-gems.sh b/build/new-jenkins/test-gems.sh index 06db2378fd3..f2624da22ce 100755 --- a/build/new-jenkins/test-gems.sh +++ b/build/new-jenkins/test-gems.sh @@ -1,7 +1,3 @@ #!/bin/bash -docker-compose build -docker-compose up -d -docker-compose run web bundle exec rails db:create - -docker-compose run -T web ./gems/test-all-gems-new-jenkins.sh +docker-compose exec -T web ./gems/test-all-gems-new-jenkins.sh diff --git a/build/new-jenkins/xbrowser-test.sh b/build/new-jenkins/xbrowser-test.sh index d50586c1c50..3a3c048f003 100755 --- a/build/new-jenkins/xbrowser-test.sh +++ b/build/new-jenkins/xbrowser-test.sh @@ -1,5 +1,3 @@ #!/bin/bash -export COMPOSE_FILE=docker-compose.new-jenkins.yml - -docker-compose run --rm web bundle exec rspec -f doc --format html --out results.html --tag xbrowser spec/selenium/ +docker-compose exec -T web bundle exec rspec -f doc --format html --out results.html --tag xbrowser spec/selenium/ diff --git a/docker-compose.new-jenkins-selenium.yml b/docker-compose.new-jenkins-selenium.yml new file mode 100644 index 00000000000..de6ff25a908 --- /dev/null +++ b/docker-compose.new-jenkins-selenium.yml @@ -0,0 +1,12 @@ +# it is intended that this be used exclusive of all other docker-compose.*yml files in CI +version: "2.1" +services: + web: + links: + - selenium-chrome + environment: + remote_url: http://selenium-chrome:4444/wd/hub + browser: chrome + + selenium-chrome: + build: ./docker-compose/selenium-chrome diff --git a/docker-compose.new-jenkins.yml b/docker-compose.new-jenkins.yml index 75b09892f8e..2b0866ddd30 100644 --- a/docker-compose.new-jenkins.yml +++ b/docker-compose.new-jenkins.yml @@ -7,18 +7,13 @@ services: links: - postgres - redis - - selenium-chrome environment: ENCRYPTION_KEY: 598f25a47a708a96be4bd398cc512c71df1b24114e5af4f8f9c4d2ed777c9906519a07f9452e369a6fa27f8b31e8f768da1422fa47bbf9d8fbd46620dc863002 RAILS_ENV: test RAILS_DB_NAME_TEST: 'canvas_test' RAILS_DB_HOST: postgres RAILS_DB_PASSWORD: '' - remote_url: http://selenium-chrome:4444/wd/hub - browser: chrome - - selenium-chrome: - build: ./docker-compose/selenium-chrome + DATABASE_URL: "postgres://postgres@postgres:5432/canvas_test" redis: image: redis:alpine diff --git a/docker-compose.new-vendored-gems.yml b/docker-compose.new-vendored-gems.yml deleted file mode 100644 index 2b0866ddd30..00000000000 --- a/docker-compose.new-vendored-gems.yml +++ /dev/null @@ -1,22 +0,0 @@ -# it is intended that this be used exclusive of all other docker-compose.*yml files in CI -version: "2.1" -services: - web: - # use master if NAME is unavailable - image: "starlord.inscloudgate.net/jenkins/canvas-lms:${NAME:-master}" - links: - - postgres - - redis - environment: - ENCRYPTION_KEY: 598f25a47a708a96be4bd398cc512c71df1b24114e5af4f8f9c4d2ed777c9906519a07f9452e369a6fa27f8b31e8f768da1422fa47bbf9d8fbd46620dc863002 - RAILS_ENV: test - RAILS_DB_NAME_TEST: 'canvas_test' - RAILS_DB_HOST: postgres - RAILS_DB_PASSWORD: '' - DATABASE_URL: "postgres://postgres@postgres:5432/canvas_test" - - redis: - image: redis:alpine - - postgres: - build: ./build/docker-compose/postgres/9.5