spec: separate selenium config into selenium.yml

most builds do not need selenium container so move the selenium
config into it's own yml and only add to env variable when
needed.
Removed docker-compose-build.sh, add docker-compose build code
into the build scripts.

closes: CORE-3253

Change-Id: I5698019c69dd8940624589928b8a7d4b65f940a5
Reviewed-on: https://gerrit.instructure.com/206247
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
This commit is contained in:
James Butters 2019-08-22 07:21:41 -06:00
parent 62c92a2264
commit 355b92601b
19 changed files with 47 additions and 62 deletions

7
Jenkinsfile vendored
View File

@ -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'
}
}

View File

@ -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'
}

View File

@ -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'
}

View File

@ -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'
}

View File

@ -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'
}

View File

@ -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'
}

View File

@ -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'
}
}

View File

@ -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'
}
}

View File

@ -0,0 +1,4 @@
#!/bin/bash
docker-compose build
docker-compose up -d

View File

@ -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

View File

@ -0,0 +1,3 @@
#!/bin/bash
docker-compose exec -T web bundle exec rails db:create

View File

@ -0,0 +1,3 @@
#!/bin/bash
docker-compose exec -T web bundle exec rails db:create db:migrate

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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/

View File

@ -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

View File

@ -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

View File

@ -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