Commit Graph

388 Commits

Author SHA1 Message Date
Andrea Cirulli 2933693d06 make the postgres build using the new wait-for-it script
Since we merged the postgres Dockerfile we can change the build to use
the wait-for-it script copied to the image itself.

refs DE-271
flag = none

test plan:
- Ensure the build passes with the new versioned postgres image

Change-Id: Ic42106fdaebefe097dd4c6fce70aae9fad027125
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248414
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-29 14:30:39 +00:00
James Butters 985b6a23eb improve docker-dev-changes.sh
the current grep is including files we don't actually want, this
improvement will help narrow down to the file changes we actually
want to trigger the docker-dev build.

flag = none

Change-Id: I2d689ba9d00dd0955e4ea333f5f5fbd92c2f1f28
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248817
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-09-29 00:13:25 +00:00
Aaron Ogata c55ee5f1d3 merge Jenkins node labels
Looking at Jenkins node usage, we're seeing that rspec / normal docker executors can be sitting idle while waiting for a selenium executor. There shouldn't be a difference between their configurations, so let's see how it affects the queue times if we make all stages use the same type of node.

refs DE-276

Change-Id: Ic8f9ffe8d148dc9119d1e456e689b46973a1fb3b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248114
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-28 16:27:22 +00:00
Aaron Ogata c3f7f55de3 use rspec dry-run to split test blocks
refs DE-286

Test Plan:
1. FSC passes when running against blocks

Change-Id: Ied2b077e78f401744499f0f70a5c976cc8fdafcd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248161
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2020-09-28 15:19:11 +00:00
Aaron Ogata 7cc5ae09b7 fix another flakey docker error
Change-Id: Iebfa7f4d5b1324ad095c6f8313d439aee15154c1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248483
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2020-09-24 20:05:45 +00:00
Aaron Ogata 269d3e23da refactor FORCE_FAILURE logic for clarity
refs DE-285

Test Plan:
1. FSC works for main build
2. FSC works for plugin build
3. FSC works for force-failure path

Change-Id: If1c632fa047b6a7776f458baf5aa3926e62c5070
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248421
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
2020-09-24 19:58:37 +00:00
Aaron Ogata 8bed209ee6 move FSC distribution code to Jenkins
refs DE-281

Test Plan:
1. FSC with multiple nodes
2. FSC with single node
3. FSC with force-failure
4. FSC on plugin build

Change-Id: Id5aa7eb52cb630e366173e08039e4d8fde945e20
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248219
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
2020-09-24 15:52:18 +00:00
Aaron Ogata c555d1a1de display node name for each rspec / selenium stage
Change-Id: Idb412625f60caa3325ce470ab645c296584297e7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248198
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-22 18:32:57 +00:00
Andrea Cirulli 0ab3fbcb7f restore the postgres_client variable usage in canvas-build
Need to restore the POSTGRES_CLIENT variable usage
on the new Ubuntu image based build

test plan:
- Ensure the build passes using the canvas_build version that set postgres_client to 12

refs DE-164
flag=none

Change-Id: Ibabaf5dfd0221b4600b2aa28f4b038638629cd4b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/247959
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-17 22:31:22 +00:00
Andrea Cirulli c82cdf7bd5 merge postgres dockerfiles
Merge the two files build/postgres/Dockerfile and docker-compose/posgres/Dockerfile.
They have the same contents once we add the /wait-for-it script into the build Dockerfile.

refs DE-220
flag = none

Test plan:
- Ensure that ./script/docker_dev_setup.sh works correctly
- Ensure that Jenkins builds correctly when using the new PG image

Change-Id: I0e39ceb2f1ec7c9eacbe155f98af7fa78b0f9b8c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/246898
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-17 21:27:39 +00:00
Aaron Ogata 23f92dc1c4 fix build issue where directory already exists
Change-Id: If81427b59e768a3d3dadb21885892ab3825c0f09
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/247803
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-16 00:01:02 +00:00
Andrea Cirulli 375192ec94 use chromium instead of google-chrome-beta
Karma Dockerfiles are using the google-chrome-beta package.
The test should be executed using a stable version of Chromium.

refs DE-257
flag=none

test plan:
- Ensure specs pass
- Ensure Jenkins build pass
- Ensure 20 Karma tests pass

In the Karma Dockerfile is being used the google-chrome-beta package, we have to change it to google-chrome-stable for testing against a stable chrome version.

Change-Id: I8e51709326306d51c58e0c6d82fcc3f542865074
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/247385
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-15 22:13:48 +00:00
Andrea Cirulli 91398a26af move helper images into own build
Instead of building the helper images (cassandra, redis, postgres, selenium) in the main canvas-lms build,
move the images to be built in a separate Jenkins build to prevent accidental overwriting.

refs DE-196
flag = none

Test plan:
- Ensure cassandra image is built and pushed to starlord
- Ensure redis image is built and pushed to starlord
- Ensure dynamodb image is built and pushed to starlord
- Ensure postgres image is built and pushed to starlord
- Ensure Jenkins build passes with the images created by the helpers
- Ensure Jenkins build passess with the original Jenkinsfile

Change-Id: I1be5f4d0ff5fa28a0c3ec01e209f54379f58c173
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/246802
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-09-15 21:47:15 +00:00
James Butters 5deafbc281 add docker-smoke build
Adding a new build for local docker setup, add new Jenkinsfile
for that build that replicates the local setup for docker dev.

closes: DE-207
flag = none

Test Plan:
- Run new Jenkinsfile in proof-of-concept build
- Current builds all pass, no effect on them
- New build passes as sub-build of main build
- New build triggered with changes to relelvant files

Change-Id: I1a2562425a33caee6eed4c1e2899c364dd181711
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245728
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-09-14 23:12:35 +00:00
James Butters 025e6bc34f convert alpine image into ubuntu image
We originally experimented with an Alpine image for reduction in image size. However, a number of issues with Alpine have appeared that were unanticipated.
1. Alpine uses a different memory allocator
2. Alpine package manager deletes old versions once new ones are published.

The first issue is the potential root cause behind random segmentation faults in our tests and we are reverting the Alpine change to eliminate the memory allocator difference as the cause.

Test Plan:
1. Ensure that Jenkins image caching works correctly
2. Ensure that local docker build scripts work correctly

Change-Id: I02b13d8c7117495d825a92e0a4be4e70b0e78caf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/247283
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
2020-09-10 19:33:59 +00:00
Aaron Ogata c59b12fbab upgrate postgres-client version for alpine
Change-Id: Ie50d509fdda51138e59341f50d97df111f60c8e1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/247166
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-09-08 20:46:38 +00:00
James Butters 1c87d9154f allow empty results for junit rspec/selenium
during a retrigger, if selenium and rspec are skipped the junit
publishing will fail. Allow empty results.

flag = none

Change-Id: I7c81ca6d017b4ee2f1f7bd2633cd3dedfa635a37
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/246711
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-09-02 13:15:08 +00:00
Brian Watson 0cb4e6418f Push canvas-as-a-consumer http contracts to pact broker
flag=none
closes OUT-3903

Note: Pact and FSC don't play nicely when generating contracts
since Pact thinks that a new FSC run of a request+state pair
is trying to override something unintentionally

FSC_REPEAT_FACTOR='1'

Test-plan
 - verify that contract tests run
 - (post-merge): verify that contracts are pushed to inseng broker

Change-Id: Ic856bf6b506a00a921e9b1dd6add6dc1bdd105bd
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/246265
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Reviewed-by: Michael Brewer-Davis <mbd@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2020-08-31 17:49:08 +00:00
Aaron Ogata e5e6fa54f1 move packages into dependencies layer for caching
refs DE-216

[change-merged]
[build-registry-path=jenkins/canvas-lms/de-216]

Test Plan:
1. Ensure that docker-compose build works locally
2. Ensure that packages building is cached when files aren’t changed
3. Packages build correctly when modified

Change-Id: I3e775e5d7eb51ba06078314b50bf2f8efb6d7d0b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245423
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-24 14:40:21 +00:00
Aaron Ogata 4b796a818e restore junit parallel uploads
refs DE-219

Test Plan:
Run the build several times and ensure the test count is consistent

Change-Id: Id773ef534efa4514543596fdc53bac565a5bd349
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245762
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
2020-08-24 14:37:28 +00:00
Aaron Ogata f13d6b940e disable log truncation for easier debugging
Change-Id: Id4d479d2050074011fb5ec73cfdac6b1fb1e4198
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245470
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-19 16:39:17 +00:00
James Butters 37b96514e2 update to use postgres 12
update to use postgres 12, removed some dupicate env vars, changed
to use the correct env vars to be in-line with canvas-builds.
skip failing specs for eval team to fix. EVAL-1104

flag = none
refs: DE-185

Test Plan:
-Jenkins main-canvas-postgres-12-ruby-2.6 build passes
-Jenkins main-from-plugin passes
-Jenkins FSC passes
-Jenkins peformance tests passes

Change-Id: Ied0b7bc3d894897fb673cf07e861f7d91bc9ed48
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244770
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-08-18 22:54:56 +00:00
Aaron Ogata 99d0010d86 minimize yarn caching dependencies
refs DE-209

[change-merged]
[build-registry-path=jenkins/canvas-lms-de-209]

Test Plan:
1. Ensure that `docker-compose build` works locally
2. Ensure that yarn is cached on Jenkins when run on a separate node

Change-Id: Icadf02b9e999eafd14f493ae1c0649ed0ffe58bf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245336
QA-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-18 15:53:28 +00:00
Aaron Ogata 8ffaf8d925 minimize file dependencies for bundle caching
refs DE-187

[change-merged]
[build-registry-path=jenkins/canvas-lms-de-187-test]

Test Plan:
Ensure that the cache is used for bundle install when a gem changes and the build is run on a different node.

Change-Id: I43f83338a25a0774030495904b75d0825abcc5bb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244748
QA-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-17 23:42:08 +00:00
Aaron Ogata e2aebb07cb split main Dockerfile & jenkins Dockerfile
We want to use buildkit-specific Dockerfile commands on Jenkins for caching / performance reasons, but don’t want to force other users to use buildkit locally due to the inconvenience with environment variables.

refs DE-208

Change-Id: Idbfaf589f72af7a40e16aa8d13fc5aaba7751edc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245311
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-17 22:29:25 +00:00
Aaron Ogata f17f6bb59f drop ruby image
refs DE-187

Caching intermittently fails due to the intermediate layer in the multi-stage build. We don’t have any consumers of this image for now, so let’s work around this problem by removing it, until we can prioritize investigating why the multi-stage build isn’t using the cache for the intermediate layer.

[change-merged]
[build-registry-path=jenkins/canvas-lms/de-187-drop-ruby-layer]

Test Plan:
1. Cache is used on a build with a file changed on a separate node.

Change-Id: I8d771ac532bcd0bacc554f02f6b129294bcfedf9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244848
QA-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-17 15:24:31 +00:00
James Butters e59ab3875e remove print-env-excluding-secrets
only the Jenkinsfile.test-subbuild is using print-env-excluding-secrets
rather than the canvas-builds-library cleanAndSetup, change to use
canvas-builds-library and remove print-env-excluding-secrets

flag = none

Change-Id: I6109ab4d981d52286c85f1a2c887332bcb5efb17
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244822
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-08-12 20:49:03 +00:00
Aaron Ogata 217b1f35de skip uglify js / source maps on pre-merge builds v2
refs DE-161

Test Plan:
1. Ensure that JS sourcemaps are skipped on pre-merge
1. Ensure that JS sourcemaps are run on post-merge
3. Ensure that Linters catch bundle size increase limits on pre-merge

Change-Id: I59607d902b191169a0415fc7673cb3a3a06dba68
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243619
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Alex Slaughter <aslaughter@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Alex Slaughter <aslaughter@instructure.com>
2020-08-11 21:05:54 +00:00
Aaron Ogata 38182bb44d cache yarn install for client_apps
refs DE-183

[change-merged]
[build-registry-path=jenkins/canvas-lms-de-183-pt-3]

Change-Id: I1f3523790f058593ed16c22e5b5c81f82e223ea8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244661
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Alex Slaughter <aslaughter@instructure.com>
QA-Review: Alex Slaughter <aslaughter@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-11 20:39:24 +00:00
Tucker McKnight eee0b0d4bc Trigger CDC schema tests if a migration is present
If a migration is present in the commit, this triggers
a build that checks if the migration will break things
for CDC/Canvas Data 2.

test plan:
- Verify that, if a migration adds a new column, the
  CDC Schema Check step fails in the build (like in
  build 4636, a previous version of this commit which
  had a migration added)
- If a migration renames a column that CDC doesn't
  care about, the CDC Schema Check step runs but
  does not fail.
- If a commit has no migration in it, the CDC Schema
  Check step doesn't run.

Change-Id: Ibe33955d11ef62bf68b8dd4cdb838cf2dad126e8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240916
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Tucker Mcknight <tmcknight@instructure.com>
2020-08-10 19:59:10 +00:00
Aaron Ogata 88a66fccf6 convert Dockerfile to template
refs DE-183

Test Plan:
1. Run the command at the top of the newly generated Dockerfile and ensure there are no changes.

Change-Id: Ice28ad169be94c39efb07d014a6bbc37e2f6c7f8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244651
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-10 18:24:37 +00:00
Aaron Ogata 14d6a9e7e4 genericize dockerfile writer
To maximize the benefit of caching, we need to allow the Dockerfile to be generated dynamically to minimize the number of file dependencies per step. Prepare to do this
by allowing dockerfile_writer.rb to accept arguments.

refs DE-183

Test Plan:
1. Ensure that ubuntu.development.Dockerfile doesn’t have any changes when run locally
2. Ensure that ubuntu.production.Dockerfile doesn’t have any changes when run locally

Change-Id: I8b4ba10b5929c2ee60c5c3537b70f606c8ea1d52
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244604
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-10 17:13:40 +00:00
Aaron Ogata c18b1c067f split yarn into own stage
Prepare for splitting pre-/post- merge webpack builds by splitting yarn into its own stage so it can continue to cache correctly

refs DE-161

Test Plan:
1. Pre-Merge Build Passes
2. Post-Merge Build Passes
3. Pre-merge build uses cache from post-merge build

Change-Id: Ib07c8934d8691b0cf7866afd56043aee503f666b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244606
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-10 16:14:59 +00:00
Aaron Ogata 784724cf74 convert separate ruby dockerfile into multi-stage build
refs DE-164, DE-154

Test Plan:
1. Jenkins uses the ruby cached images
2. Local docker building works

Change-Id: Id78da711b69510e7b93ed67fe872432dfcabb50a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244426
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-06 18:47:28 +00:00
Aaron Ogata b87f108e6b protect against another flakey docker error
Change-Id: I89186acf8c68ef04cf098b57cdebaeb6da445b15
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244360
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-05 20:49:08 +00:00
Aaron Ogata 10ee524b0b separate ruby image into gems / final
refs DE-164

Test Plan:
1. Ensure that the pre-merge, no-cache path works.
2. Ensure that the post-merge, no-cache path works.
3. Ensure that the cache path works.
4. Ensure that local docker setup scripts still work.

Change-Id: I1ecb6d7c37346b29816a2202e27ef1e662a3ac60
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244290
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-05 17:37:18 +00:00
James Butters 89bc0fa2e0 iterate through xmls for junit upload
seems to be a bug with jekins uploading bulk of junit xmls, iterating
through the xmls and uploading one by one gives an accurate junit
report.

closes: DE-171
flag = none

Test Plan:
  -Compare mulitple test runs for consistent test count

Change-Id: I7fef862bfcce00e2f60458c6c8c3fbe713b3d39c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244199
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-08-04 20:54:01 +00:00
James Butters 4af2edda80 add FSC only if spec changes
only schedule FSC build if spec changes are part of changes

flag = none

Test Plan
-Jenkins build passes
-Jenkins adds FSC build with spec changes
-Jenkins doesn't add FSC when no spec changes

Change-Id: Ie17b16bd1cac60a9427c8c689e3e2437b70d8481
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243943
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-08-04 13:42:45 +00:00
Aaron Ogata fabe20f12d move wait-for-it code to build-up
refs DE-168

The upcoming migrations cache will no longer call setup-databases.sh in patchsets without a new migration. We still need to wait for these containers to spin up, so move it to build-up.sh

Test Plan:
1. Jenkins passes
2. FSC passes
3. Chrome performance passes

Change-Id: I157ff04a1a008193bbee4e8b74369264fa387785
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/244121
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-08-03 17:04:49 +00:00
James Butters 5d1c75fb11 add default for SKIP_CACHE for unbound
flag = none

Change-Id: I4b7bdfb576df404430ce4d93a7065ff6ba91331c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243661
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
2020-08-03 14:25:08 +00:00
James Butters c5fb85082a new build for parallel log generation
closes: DE-119
flag = none

Test Plan:
-Regular jenkins builds pass
-New build Canvas/test-suites/rspec-parallel-log
  -passes and pushes gerrit with new log
  -fails and does not run create gerrit stage
    -once one step fails, entire build is failed immediately

Change-Id: I965676e26927ec5b539532cdf87191cc52db9151
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/242157
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-07-31 17:27:02 +00:00
James Butters c2d4376cbc FSC actually run for plugin changes
currently plugin changes with 'require spec_helper' will fail
to run due to spec_canvas not being in the load_path for rspec.
Add spec_canvas to the load_path to allow these spec files
to run on FSC. Also adding BUNDLE_GEMFILE=../../../Gemfile
since we are trying to run these spec from their plugin directory
we need to specify where the gems exist to actually run.

flag = none
closes: DE-152

Test Plan:
-Jenkins builds pass
-post some examples of plugin FSC builds with this change

Change-Id: I6f5063d20412450cff52de59840586e99264b390
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243459
QA-Review: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-07-30 15:13:02 +00:00
Aaron Ogata 64692b4030 properly re-use ruby docker image cache
refs DE-155

Test Plan:
1. Ensure that skip-cache directive doesn’t use the docker cache
2. Ensure that the cache isn’t used when a gem changes
3. Ensure that the cache is used when there are no gem changes

Change-Id: Idbbcc9966fddffaf5f93cb6290617dbbc64ce167
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243439
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: Ryan Norton <rnorton@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-07-28 18:40:59 +00:00
Aaron Ogata dc039e2567 remove deprecated datadog / splunk logic
refs DE-150

Change-Id: I07ee65b349e64c6d4279929fbbfb2fa71042330b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243361
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-07-24 16:37:17 +00:00
James Butters 102e009094 spec: uprade chrome to 84
Upgrade chrome browser to version 84 as part of browser.yml upgrade.
https://github.com/SeleniumHQ/docker-selenium/releases/tag/3.141.59-20200719

closes: DE-135

Test Plan:
-Jenkins builds pass
-chrome 84.0.4147.89 is used, verified in jenkins logs

Change-Id: I1fa8c552ca93dd0266058786ff69055f0e501c46
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243004
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
2020-07-22 21:05:34 +00:00
Aaron Ogata 847f5f799b protect rspec / selenium against spot instance failures
refs DE-139

[skip-docker-build]

Test Plan:
1. Ensure rspec / selenium job passes with 0 node removals
2. Ensure rspec / selenium job retries upon node removal

Change-Id: I12d6c772984ea7b4b0c5c93b50632d2240117eed
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/243190
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-07-22 20:28:32 +00:00
Aaron Ogata c329da5755 preload canvas-rce-api to prevent flakiness
flag = none

Change-Id: I22d7d65832eb7d482b13e845112bb4d56289cbb6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/242983
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-07-20 21:30:16 +00:00
Aaron Ogata 841ef7933d abstract docker image tags to shared variable
refs DE-24

flag = none

Test Plan:

- Main Build
- Main Build (PG12)
- Main-From-Plugin Build
- Master Bouncer
- Translations
- Performance (Chrome)
- Flakey Spec Catcher
- Coverage, from canvas-builds

Change-Id: I9f1d44d5c9725ed2e1ca9c66a4d5b2836ea78168
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241292
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2020-07-20 14:47:35 +00:00
Aaron Ogata ff78f2bf0b automatically split jsg nodes
refs DE-123

Test Plan:
1. Ensure that the number of tests run per JS job is the same
2. Ensure that test reporting works correctly

flag = none

Change-Id: If25f6f4fe6af6d8982b5aed62c61c65b1d4daca9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/242341
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-07-15 21:50:27 +00:00
Derek Bender a09f6902ed Alpine canvas-lms based image
Drop-in replacement for existing Dockerfile

Closes: CCI-391

Change-Id: I9d21a74d72013be854631b2f77880eb0c47fded2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236853
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-07-15 17:21:56 +00:00
Aaron Ogata 5c797e4686 exit with success code if retry passes
flag = none

Change-Id: I73d14d942427189e7bd9ab0318da9a0f56232ee1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/242193
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
2020-07-08 22:02:53 +00:00
Aaron Ogata 8f9f2cb5cf add another docker error condition
refs DE-25

flag = none

Change-Id: Id8722e72830bd3093f008419e0e557b7b5cfc832
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241812
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-07-02 19:04:11 +00:00
Aaron Ogata 62d60d5d65 add another case for docker retry
refs DE-25

Test Plan:
It’s hard to get Jenkins to intentionally fail with this error, but to test the retry logic we can use the following alternative:
1. Modify the shell script to look for “requested access to the resource is denied” or some easily reproducible error.
2. Run “./docker-with-flakey-network-protection.sh pull invalid_image”
3. Verify that the retry logic works correctly
4. Verify that the happy path works correctly

flag = none

Change-Id: Icb0119894864ec5f58e4666c2f67dd908b67fdac
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241788
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-07-02 17:38:33 +00:00
Aaron Ogata 06c7e3ee86 protect against retriable errors in docker pull
refs DE-25

Test Plan:

It’s hard to get Jenkins to intentionally fail with this error, but to test the retry logic we can use the following alternative:
1. Modify the shell script to look for “requested access to the resource is denied” or some easily reproducible error.
2. Run “./docker-with-flakey-network-protection.sh pull invalid_image”
3. Verify that the retry logic works correctly
4. Verify that the happy path works correctly

flag = none

Change-Id: I4ec53d639dbc8d25fff526792a02b8fe6861f564
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241671
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2020-07-02 14:03:48 +00:00
James Butters c757e82b0e upgrade to latest release of selenium docker image
upgrade selenium version to latest release, also change to use
env vars rather than having version in multiple files to update.

flag = none

Test Plan
-Jenkins selenium builds pass

Change-Id: I7fc5787da7ceb99cbe0cfda2fc3b947cffee57de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241424
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-06-30 11:40:30 +00:00
James Butters 482c134c94 combine docker yamls into one
combine docker-compose.new-jenkins.yml and
docker-compose.new-jenkins.multple-processes.yml into one since
they are very similar.

flag = none

test plan
  -All Jenkins builds still pass

Change-Id: I63737562aa054cd471fbd165227b928f93731371
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241393
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2020-06-29 16:37:55 +00:00
Aaron Ogata db6da7986f only pull selenium images if needed
Change-Id: I3d534cec5e9bacde5f8989d254b95354eb540a19
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240826
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-06-23 22:47:09 +00:00
Derek Bender c3c4f6bf9a Spec: Improve build config calls
Without this change we were calling the same config functions
over and over and that was muddying up the logs and didn't
seem especially fast either due to the load() in the
underlying function.

Change-Id: Ia37869ca84604ec2723212d1be46a446f57a1a6e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240190
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-06-22 12:57:59 +00:00
Derek Bender 1cabb02b1c spec: improve rspec-tests.sh
Change-Id: Ic7af36d9d18aa94e83d2efdbdeaf8c8f35b90aa2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240311
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-06-22 12:57:36 +00:00
Rex Fleischer c5c3820042 use shared library for configuration
fixes: CCI-389

Test-Plan:
we need to run all the builds that we can for this:
- the current build needs to pass
- main-for-plugins needs to be ran
- master-bouncer
- dive?
- translations

Change-Id: Iae7f9dad7668b90653a0b9a8edc20ec69fa109c3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240345
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ryan Norton <rnorton@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-06-18 18:36:49 +00:00
Aaron Ogata ea8587774a improve UX around non-merged parent commits
refs CCI-364

Change-Id: I4bb5ee8ff453833f4ecbf0c86d7496a9751d936e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/239657
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ryan Norton <rnorton@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
2020-06-18 16:19:11 +00:00
James Butters a73851216b junit reports for contract tests
closes: CCI-387
flag = none

Change-Id: I7149a881278bcbb028f6f92c6319123723f64315
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/240463
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-06-18 13:30:07 +00:00
Rex Fleischer 03bcc04e8c update fsc to go into the plugin directory to do tests
[skip-docker-build]

fixes: CCI-402
flag = none

Test-Plan:
execute the plugin build with this PS

Change-Id: Id8c85ef80671a5cd055e2aafd15cfb98d8251045
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/239678
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ryan Norton <rnorton@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-06-17 14:58:09 +00:00
Aaron Ogata 699f861cee remove antiquated files
refs DE-2

These files are no longer used after the migration to New Jenkins.

Test Plan:
1. Ensure Jenkins passes

flag = none

Change-Id: Id680a03b6056663f9a402d13bfd6a6b215a37c94
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/239874
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2020-06-11 18:00:09 +00:00
James Butters 56c1ebf76c spec: junit for rspec results
closes: CCI-398

Test Plan:
 Jenkins passes with junit results published
 splunk logs show the same junit results

flag = none

Change-Id: Ia2d3739fbb4235f0e227091c5209772630d533ef
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/238055
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-06-09 21:24:08 +00:00
Rex Fleischer cf86e6d5ec change from using WORKSPACE to current directory for builds
while migrating to a build repo, we need to be able
to run these build scripts within the dir(){} on the checked
out root of this project. that will allow us to run these
scripts.

refs: CCI-393
flag = none

Test-Plan:
this build run and we test it with force-failure.
execute this with the canvas-builds while referencing this
PS to ensure that it will fix the WORKSPACE problem.

Change-Id: Idfe656771e2e4208e3b0980c942186a516f3bac1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237905
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-05-26 18:33:29 +00:00
Rex Fleischer 442ca55ceb move some configurations to folder configuration
fixes: CCI-394
flag = none

Test-Plan:
build passes and run coverage build and make sure rspec/selenium
run

Change-Id: Idb8c96b285d2a95cbeb5802e436d196204888bc0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237592
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
2020-05-26 17:41:14 +00:00
S. Jacob Powell 505d00c7a5 Upload rspec and selenium events to splunk
test plan:
see them on splunk, build passes

fixes: CCI-383

flag = none

Change-Id: I7aa85ad4b3ec767314007276d0fd094c31210904
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237760
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-05-18 21:06:01 +00:00
S. Jacob Powell 36d928d72a Extract splunk events into common file
test plan:
Builds pass and data is still uploading to splunk correctly
See failure example:
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/30766/artifacts

fixes: CCI-367

flag = none

Change-Id: I1d1613a566dd3e4013ad68775fe726dd9ea54e97
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237057
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-05-15 20:47:10 +00:00
James Butters 18862fdf0e spec: revert pact scripts in bin/ to use web
pact scripts in bin/ are for local runs of pact and need to
use web container, new files that are in build/new-jenkins
don't need the check if Jenkins.

flag = none

Change-Id: I878b157b9856f1c25e160d7608b226f7185974a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237520
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
2020-05-15 19:47:55 +00:00
August Thornton b67d8f02ab improve Pact build times in Jenky
closes USERS-523
flag = none

test plan:
 * builds should pass

Change-Id: Id34d85e58f6dc693b8a6ffca37d08d838562daec
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235344
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: August Thornton <august@instructure.com>
Product-Review: August Thornton <august@instructure.com>
2020-05-15 15:35:24 +00:00
Rex Fleischer b678d90773 add configuration for publishable tag
fixes: CCI-381
flag = none

Test-Plan:
the build passes and we see the new publishable tag

Change-Id: I01e3cd9299bb238137cdee1d32c4c46153bd7695
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237341
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-05-14 17:04:10 +00:00
James Butters f67efbf768 spec: upgrade the selenium-chrome docker version
Test Plan:
- all builds pass

flag = none

Change-Id: I51963ba964928d6c86270a178435930a3977fb35
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/237237
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-05-14 02:32:38 +00:00
S. Jacob Powell 791f4823fe Get test failures into splunk
Test plan:
https://jenkins.inst-ci.net/job/Canvas/job/main-canvas/30636/
Also, just search for jenkins.test.failure in splunk

fixes: CCI-58

flag = none

Change-Id: I9ee50f9788b5ce95bc6a4cfc29e9741d7ca32026
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236717
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-05-13 19:55:26 +00:00
Rex Fleischer 8fc0a10688 add smoke test for using canvas-lms image as a consumer
fixes: CCI-309
flag = none

Test-Plan:
the build has to pass with the new smoke test stage and
the image should start on portal2

Change-Id: Id71846ed3aca5f6b260bd342c6ce2b2a56743b66
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/233716
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-05-13 16:54:14 +00:00
James Butters 335f6c8c46 spec: more parallel of docker, better even
using the option project-name with docker-compose allows
us to have all services separate for each group of tests.

test plan:
Jenkins passes all build
logs are copied out of containers for archiving/test reports
run with force-failure flag


flag = none
closes: CCI-341

Change-Id: I99820f64023dde17a1b75e76bcec2dfe84529e91
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236029
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-05-11 15:07:18 +00:00
S. Jacob Powell d70840dd52 Add splunk node wait times and better splunk helper usage
test plan:
You can see the numbers on the builds dashboard

fixes: CCI-357

flag= none

Change-Id: Ic1efb3df107b803c65af79543d346a4f95a110cf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/236354
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-05-08 20:56:20 +00:00
Rex Fleischer e311150902 fix for running code coverage
fixes: CCI-282
flag = none

Test-Plan:
run the coverage build and it passes

Change-Id: Id754afc97db56d44dd0f1a04d454f9df33947d44
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234385
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-05-07 20:19:38 +00:00
Rex Fleischer 0bae9c44df add force failure for fsc
[skip-docker-build]

fixes: CCI-350
flag = none

Test-Plan:
add force failure to commit message and ensure fsc
actually gets forced to fail.

Change-Id: I3825dd389c9643ed8abb911cb0cd04b7101c6f9e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235673
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-05-07 20:18:44 +00:00
Derek Bender 217d2c36cc Add gergich error on absent patchsets deps
Fixes: CCI-354

Test plan
- builds pass

Test plan after merge:
- After merged, create two patchsets build on the prior
- the latter patchset should have a gergich -2 message on COMMIT_MSG

Change-Id: Iba6e9bb7a82d11841214f10842d50e129079fa5c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235775
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
2020-05-07 15:31:10 +00:00
S. Jacob Powell 4be187e3aa Add splunk events
test plan:
Log into splunk
Search with index='canvas-ci'
See the events from the build

fixes CCI-343

flag = none

Change-Id: I3d945a61c16db3b1772d654c2ce6d12f4c842492
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235449
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-05-04 15:42:23 +00:00
Rex Fleischer ed7bcbb275 add external configuration for fsc propagation
note:
FSC_PROPAGATE folder config file added in jenkins canvas folder

[skip-docker-build]

fixes: CCI-349
flag = none

Test-Plan:
run the build with FSC_PROPAGATE config set to 1, and ensure
propagate was set to true. then set to 0, and ensure propagate
was set to false.

Change-Id: I929929725df88d50e78ab918803c6e67460795f4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235659
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-05-01 15:30:19 +00:00
Derek Bender 7be7b37a68 Fix dynamodb docker build
Fixes: CCI-356

flag = none

Test Plan:
- execute the changed line without the "docker pull" that runs first

Change-Id: I4cf0afeea446eeec11fca05dd4348520a18fa411
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235807
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-04-30 21:22:28 +00:00
Derek Bender 11c01f4b66 Configure databases in a unified manner
This patchset removes the much duplicated database.yml and instead
defaults to a DATABASE_URL scheme. There is however still present a
docker-compose/config/new-jenkins/database.yml file to temporarily allow
our internal portal service to still function until such time we can
reconfigure it.

To set up custom connection options all that is needed is setting
DATABASE_URL. See examples of this in docker-compose.yml and
docker-compose.new-jenkins.yml.

Test Plan
=========

Image:
- pulling canvas-lms:master image boots without database errors

Repo:
- given default dev environment where
  COMPOSE_FILE=docker-compose.yml:docker-compose.override.yml

- build the web and postgres images: docker-compose build web postgres
  (feel free to comment out `yarn install` and `compile_assets` in the
  Dockerfile since we won't be needing them for this test and this
  speeds things up)

- set a custom DATABASE_URL to change the database name and echo it to
  see it gets into the image correctly:

    $ docker run -it -e \
      DATABASE_URL=postgres://postgres:sekret@postgres/canvas_custom_env \
      $(docker-compose ps -q web) bash -c "echo \$DATABASE_URL"
    => postgres://postgres:sekret@postgres/canvas_custom_env

    $ docker-compose run --rm -e \
    DATABASE_URL=postgres://postgres:sekret@postgres/canvas_custom_env \
    web bash -c "echo \$DATABASE_URL"
    => postgres://postgres:sekret@postgres/canvas_custom_env

- Test that setting a custom database name via DATABASE_URL can create
  the database

    $ docker-compose run --rm -e \
    DATABASE_URL=postgres://postgres:sekret@postgres/canvas_custom_env \
    web bash -c "bin/rails db:create"
    => Created database 'canvas_custom_env'

- This patchset boots on portal

Change-Id: Ic6f3819550df94b6c98b17ef05ac2029a578cfe4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234213
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-28 22:42:21 +00:00
Derek Bender 7e452e280e setup postgres extensions on all test dbs
Closes: CCI-345

Test Plan:
- set your COMPOSE_FILE to docker-compose.new-jenkins.yml
- remove any existing database volumes via
  `docker rm canvas-lms_pg_data` or `docker-compose down -v`
  which will remove all volumes in the project.

- update the image with `docker-compose build postgres`
- start the container

    $ docker-compose up --detach postgres

- create a second database:

    $ docker-compose exec -T postgres createdb -U postgres \
      -T template1 canvas_test1

- check both databases:

    $ seq 0 1 | parallel "docker-compose exec -T postgres psql -x \
      -U postgres \
      -d canvas_test{} \
      -c \"SELECT * FROM pg_available_extensions \
        WHERE name = 'pg_collkey';\"

- Expect two records to be present:

    -[ RECORD 1 ]-----+-------------------------------
    name              | pg_collkey
    default_version   | 0.5.1
    installed_version | 0.5.1
    comment           | ICU collation function wrapper

    -[ RECORD 1 ]-----+-------------------------------
    name              | pg_collkey
    default_version   | 0.5.1
    installed_version | 0.5.1
    comment           | ICU collation function wrapper

Change-Id: If1417df3edab788372927b16632e146069a6829e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/235310
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-04-27 18:25:57 +00:00
Rex Fleischer 33b539552b use folder level BUILD_REGISTRY_FQDN value
fixes: CCI-337
flag = none

Test-Plan:
build needs to work while consuming the new config value

test notes:
example of noisy error:
PS7 -> https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28616/pipeline

example when param not found:
PS10 -> https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28619/pipeline/

example of being able to override with build param:
PS11 -> https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28622/pipeline/49
look for the SHARED_REGISTRY_FQDN env variable

Change-Id: I9e41eead91e629e971a690e6c09fba754ad54a29
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234928
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-23 17:18:08 +00:00
S. Jacob Powell 263d065a93 Add force-failure flags for selenium and rspec
test plan:
Here is a forced failure for all (force-failure):
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28534/pipeline/363

Here is a forced failure for rspec(force-failure-rspec):
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28558/pipeline

Here is a forced failure for selenium (force-failure-selenium):
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28559/pipeline

Here is a forced failure for JS (force-failure-js):
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/28561/pipeline

Feel free to run these locally, just pass in an env var to the test when
running it, and set it to 1 (FORCE_FAILURE=1 <test command>)

fixes CCI-316

flag = none

Change-Id: Ida6e25f5c1df71074ea26298c8f1b640df1b7a45
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/233265
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-04-22 18:42:53 +00:00
Rex Fleischer 6d26fecba3 only send rspec/selenium failures when stages are considered failed
fixes: CCI-328
flag = none

Test-Plan:
force fail selenium/rspec tests to make sure the reports still send.
then make sure the reports dont send when build passes.

Change-Id: I912dbb85dbfd9354e4f6dbdab1329bde8a718415
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234328
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-20 20:22:13 +00:00
Rex Fleischer f03add97da add gergich check to enusre yarn.lock is checked in
fixes: CCI-303
flag = none

Test-Plan:
this is likely going to break on first PS with this
gergich check. so if it does, then we update yarn.lock
in this PS to show it working.

if not, we'll need to add a change in package.json to require
a yarn.lock check failure.

Change-Id: I7d30e7953142dde71dbbe746e089725a3cb8d473
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234179
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-20 16:58:24 +00:00
James Butters f824427abf spec: update parallel_runtime_rspec.log
use parallel_rspec rather than parallel_test

flag = none

closes: CCI-331

Change-Id: I8a02df55d395386defbf2826a5c82c8048969a43
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234439
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-04-17 17:00:17 +00:00
James Butters 44369458e7 spec: use rspec nodes for better monitoring
rspec - 8 processes per node and 15 nodes
selenium - 6 processes per node and 20 nodes

closes: CCI-310, CCI-311

Change-Id: I9586fefc39a4870ad6d9f2ec9c45b19d5829e383
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/232844
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-04-16 20:25:47 +00:00
Rex Fleischer 06b0f6441f configure fsc to ignore gem plugin specs
fixes: CCI-306
flag = none

Test-Plan:
run the build with a test that should not be ran and
ensure it gets ignored.

PS4 showed the above

Change-Id: I55434d1e77c119e06e20b2a0cb2aca31fa94f498
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234086
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-15 17:16:23 +00:00
Rex Fleischer ec61fca7ea add failure messages to be sent to gerrit PSs
fixes: CCI-304
flag = none

Test-Plan:
retrigger until there are error and ensure the message is
sent correctly. so make sure that no messages are sent when
no error is happening.

QA: example on PS35

Change-Id: I10f41c54ec3764f761284ae0d984ed1d67af391d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/232289
Reviewed-by: Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-10 15:39:11 +00:00
Derek Bender a409162778 Reduce logging output
Closes: CCI-315

test plan:
- no 30k worth of lines in the psql import step

flag = none

Change-Id: If849f49655aa2fe3018fbfe7b71a2eb7873abd34
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/232991
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-04-09 20:56:03 +00:00
Rex Fleischer efc1a8d6a7 send datadog metrics even if there is an exception thrown
fixes: CCI-317
flag = none

Test-Plan:
the build runs and logs that it sent a metric in all places
that should.

Change-Id: Iff4ec455990512d32cfac527671fb2645d563ac4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/233204
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Ryan Taylor <rtaylor@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-04-08 20:11:10 +00:00
Ryan Taylor 93b12abdf3 Switch to distribution metrics for Datadog
Closes CCI-314

flag = none

Test Plan:
- No direct impact, metrics can be observed on datadog.

Change-Id: I2df9bbd01c8532648d857338d6dbc13dc17876ad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/232738
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jayce Higgins <jhiggins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2020-04-08 15:33:47 +00:00
James Butters e6a2dbcb47 spec: fix the parallel_runtime_rspec.log
flag = none

Change-Id: I4bfa1c77281dbb4dd7da8f919dd7955eb8605b0a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/233173
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-04-07 15:35:36 +00:00
James Butters 46e8361ef2 spec: remove extra underscore
flag = none

Change-Id: I3fa52832ff4e6e719199d029bc9f4ab0f005e3e3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/232529
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-04-01 20:40:23 +00:00
James Butters bf5a8f5a2a use parallel_tests for more parallelization
Using the parallel_tests gem allows us to parallelize more
and a bit simpler. Removes headless stuff now that we don't
use it anymore, comments out video recording code since it
doesn't work, removes all knapsack code.

flag = none
Test Plan:
Jenkins rspec and selenium builds pass
rspec and selenium builds copy results to html publisher
rspec and selenium have nodes split into processes

Change-Id: Ibd00eba77f8193be5eadd41aef1e0617c9ae470c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227677
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-03-30 21:38:47 +00:00
Benjamin Christian Nelson 152f6b91e2 add basic datadog stage metrics for Jenkinsfile
Change-Id: Ia7143515e665a37cf8b1473febfdc350c8cd4338
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/230839
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Benjamin Christian Nelson <bcnelson@instructure.com>
Product-Review: Benjamin Christian Nelson <bcnelson@instructure.com>
2020-03-30 17:25:06 +00:00
Derek Bender 15db56551d yarn install ENOENT fallback
Change-Id: I16ee71af83dc3efac7b5bfec03e28de13725c3a9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231987
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Benjamin Christian Nelson <bcnelson@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-03-30 16:22:24 +00:00
Rex Fleischer 14bedb09a2 add skipping on success to rspec and selenium
fixes: CCI-295
flag = none

Test-Plan:
- make sure jenkins passes.
- make sure a retrigger on success still causes an entire run
- abort on a build (to force failure), then retrigger to ensure
  they skip if possible

QA: PS7 shows the retrigger working for only rspec and fsc

Change-Id: Ifb3ff65a9f0adee5243c1e18869b0acd41575db9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231079
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-03-27 16:46:51 +00:00
Ryan Taylor ecbb7aa8ec builds: harden docker cleanup
Change-Id: Ie0aa7baa10e3c51c94e05cf601101793d780a0f0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231776
Reviewed-by: Jayce Higgins <jhiggins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ryan Taylor <rtaylor@instructure.com>
Product-Review: Ryan Taylor <rtaylor@instructure.com>
2020-03-26 22:25:58 +00:00
Derek Bender f4f17ced0b silence migration logging for speedup
flag = none

Change-Id: I97ba874a24d4746ca3637c5d303ea1a5ea09e74d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231523
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-03-26 22:21:25 +00:00
Derek Bender 784e217760 Spec: Add dive build
Change-Id: I8b3e7efe498c7cdc8e589bc44346f154300acfa5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221521
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
2020-03-26 14:52:06 +00:00
Rex Fleischer f65ed93aa0 ensure the spec report dir is created
fixes: CCI-299
flag = none

Test-Plan:
the build needs to pass without the dir doesnt
exist error.

Change-Id: I3df694834f669c2dcc62c210202fdec273b7a0d0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231304
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-03-25 17:33:38 +00:00
Rex Fleischer 82c7246e15 prefix directory that builds test error reports
fixes: CCI-296
flag = none

Test-Plan:
jenkins passes and has both reports published

Change-Id: Ief404e5bc6ae2fef6da144d371f2c509f2f7f762
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/231098
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-03-24 15:17:34 +00:00
Rex Fleischer b594098df5 run rspec and selenium tests off main build node
[skip-docker-build]

fixes: CCI-290
flag = none

Test-Plan:
- build passes on PS.
- build passes in main-for-coverage
- build passes in main-for-plugins

Change-Id: Iafb84175bb27e8a90a4cac2c3c049df53ceb4776
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/230521
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-03-23 19:21:48 +00:00
Derek Bender a6b6bb8974 Default Dockerfiles to 2.4-xenial
Closes: CCI-292
flag = none

Test Plan:
- rebuilding the web image uses 2.4-xenial

Change-Id: Ia601c83767e0317ad0dbee21e54755413571c44a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/230371
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Taylor <rtaylor@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
2020-03-19 21:51:38 +00:00
Rex Fleischer dfd1cf11e3 simplify logic for skipping docker build
fixes: CCI-285
flag = none

Test-Plan:
- run with skip-docker-build and ensure it works.
- run without and ensure it works

Change-Id: Ida7d623b7b20496dc9d5cfeb6c571c56eca49b7e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/230129
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-03-19 15:02:59 +00:00
S. Jacob Powell 17b2c777fd Remove unsupported 'set' command flags
test plan:
Test build to verify it's working:
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/24242/pipeline/

Also, added a ticket to come back to extract those scripts into bash
scripts when possible/available
scripts: CCI-228

flag = none

Change-Id: Id0bef85c70d958d63345540224bd6032da52ca74
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/230375
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-03-18 19:31:11 +00:00
Derek Bender 68d03c9e94 Add verbose flags to builds
Closes: CCI-248
flag = none

Test Plan: builds pass

Change-Id: Ia0421d4036eb1655a10497363e0327779c69746b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/229446
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
2020-03-18 13:41:00 +00:00
Rex Fleischer 15a0e84100 move linters to main build to include rebased changes
fixes: CCI-280
flag = none

Test-Plan:
it doesnt sent the migration warning

Change-Id: I6669adfc2ff937a3596e22a5a9b267c5e9349721
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/229304
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-03-13 18:50:43 +00:00
James Butters efb81bdd0a whitelist postgis in docker cleanup
we recently changed from postgres to postgis image so we need
to make sure the docker cleanup is whitelisting the correct
image.

flag = none

Change-Id: Ib46923ce4b95fce2d40d6ab7522a0d40157aa10b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/229594
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-03-11 14:10:36 +00:00
Derek Bender 78123c4cb6 Multiple rubies and postgres on Jenkins
Closes: CCI-214
flag = none

Test plan:
- The following builds pass:
  - main-canvas
  - main-for-coverage
  - main-canvas-postgres-12
  - main-canvas-ruby-2.6
  - main-canvas-postgres-12-ruby-2.6

Change-Id: I253d0cc8f0a808d8453fd3cbe1cfc3400ec8b12a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227304
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-03-10 22:30:51 +00:00
August Thornton 403b13a4f8 run jest tests concurrently
closes USERS-376
fixes USERS-379
fixes USERS-385

test plan:
 - specs pass

Change-Id: I30d4c27a2c628858a207d4c0236345bad49b7bcf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228278
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
2020-03-10 21:38:24 +00:00
Rex Fleischer e5a5e0eabf remove dangling images before cleaning other images
fixes: CCI-266
flag = none

Test-Plan:
build passes with no extra errors in clean step

Change-Id: Ib56313d0ada3a8dd49cfd8833b66f226e4f867f8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228926
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-03-05 15:22:34 +00:00
Derek Bender 3ad7fbabf3 Upgrade unofficial postgis repo to official repo
Closes: CCI-261

The mdillon repo was an unofficial postgis repo, there is now and
official postgis/postgis repo!

https://registry.hub.docker.com/r/postgis/postgis/
https://github.com/postgis/docker-postgis

Test Plan:
- First, take notice if you currently have pg_collkey installed:
    $ docker-compose run --rm postgres psql -x \
        -h postgres
        -U postgres
        -d canvas
        -c "SELECT * FROM pg_available_extensions WHERE \
          pg_available_extensions.name = 'pg_collkey';"

  If `installed_version` is blank, then the extension is not isntalled
  into the `canvas` database.

- take down any running environment:
    $ docker-compose stop && docker-compose down

- copy (or update) new settings from docker-compose.override.yml:

    # manual diff
    $ diff config/docker-compose.override.yml \
        docker-compose.override.yml

    # overwrite any existing config
    $ cp config/docker-compose.override.yml .

- copy (or update) new settings from database.yml:

    # manual diff
    $ diff docker-compose/config/database.yml config/database.yml

    # overwrite any existing config
    $ cp docker-compose/config/database.yml config/

- rebuild and startup the postgres image:
    $ docker-compose up --build postgres

- the postgres logs do not mention

ERROR:  could not access file "$libdir/collkey_icu.so":
  No such file or directory

- install the extension if it wasn't previously present:

    $ docker-compose run --rm postgres psql -x \
        -h postgres \
        -U postgres \
        -d canvas \
        -c "CREATE EXTENSION IF NOT EXISTS pg_trgm SCHEMA public;
            CREATE EXTENSION IF NOT EXISTS postgis SCHEMA public;
            CREATE EXTENSION IF NOT EXISTS pg_collkey SCHEMA public;"

    $ docker-compose run --rm postgres psql -x \
        -h postgres \
        -U postgres \
        -d canvas_test \
        -c "CREATE EXTENSION IF NOT EXISTS pg_trgm SCHEMA public; \
            CREATE EXTENSION IF NOT EXISTS postgis SCHEMA public; \
            CREATE EXTENSION IF NOT EXISTS pg_collkey SCHEMA public;"

- pg_collkey is now present:

    $ docker-compose run --rm postgres psql -x \
        -h postgres
        -U postgres
        -d canvas
        -c "SELECT * FROM pg_available_extensions WHERE \
          pg_available_extensions.name = 'pg_collkey';"

    $ docker-compose run --rm postgres psql -x \
        -h postgres
        -U postgres
        -d canvas_test
        -c "SELECT * FROM pg_available_extensions WHERE \
          pg_available_extensions.name = 'pg_collkey';"

- Optionally, Build the postgres container with fresh volumes:

    $ COMPOSE_PROJECT_NAME=<a-unique-name> docker-compose --build \
        up postgres

- The postgres logs show no errors related to collkey_icu.so
  (like above)

Change-Id: I4f0e027cd908fee937b6204cd3a20e5ecf998021
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228190
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-03-04 22:03:02 +00:00
S. Jacob Powell 27d9b29c1e Add rubygems snyk checking to canvas
test plan:
build passes
clicking the link found in snyk_result.json shows canvas-lms:ruby's
vulnerabilities, and the html is also a pretty report
4 snyk artifacts show up in artifacts (only on merge)

Example of artifacts in a build;
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Fmain-canvas/detail/main-canvas/22967/pipeline

fixes: CCI-212

flag = none

Change-Id: I2b375190a96a985ab0cc36a764e80fd27ba7966b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227610
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-03-04 20:05:59 +00:00
James Butters 47f5de97a3 spec: upgrade chromedriver for chrome version 80 local and docker
flag = none
closes: CCI-263

Test Plan:
Jenkins selenium builds pass.

Change-Id: Ib7970d5b5b9c9a6d07051b1a22758ef055bb1bcc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/228326
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-02-28 15:38:01 +00:00
Rex Fleischer 0f7ed7270b make the docker clean more concise
fixes: CCI-249
flag = none

Test-Plan:
read though the logs for the clean script and ensure
that it is removing all the stuff except for db and master canvas.

Change-Id: I282a072d95ef19b32be98faee2992ae14a7d9c9d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227748
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
2020-02-27 21:07:25 +00:00
Derek Bender 66bc8751b9 Copy over pg_collkey.control
Currently it appears pg_collkey throws an error in the postgres
container, althought it doesn't appear to halt the process. Adding this
missing file resolves this problem

Fixes: CCI-252

Test plan:
- docker-compose build postgres
- docker-compose up -d
- docker-compose logs -f --tail=100 postgres
- visit http://canvas.docker/ in the browser
- the postgres logs should no longer contain a message like:

ERROR:  could not access file "$libdir/collkey_icu.so": No such file or
directory

feature_flag = none

Change-Id: Ib1483a24e705260b2eaeba81ec456ed9f6acf89d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227805
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
2020-02-25 17:06:29 +00:00
Rex Fleischer 63a71e7cc7 make flakey spec catcher build potentially distributed
fixes: CCI-236
flag = none

Test-Plan:
get it passing as is, then make a version of this
PS have a bunch of test changes to force the distributed
path to trigger.

- test with one node
-- PS 11
-- https://jenkins.inst-ci.net/job/Canvas/job/test-suites/job/flakey-spec-catcher/299/
- test with multiple nodes
-- PS 14
-- https://jenkins.inst-ci.net/job/Canvas/job/test-suites/job/flakey-spec-catcher/306/

and for testing with no spec changes, the latest PS will have no tests

Change-Id: I4c69ce5c4cb67448ed270ae9fb3255ce21356b11
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/227214
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-02-20 21:02:26 +00:00
Derek Bender 09a4fbc50e apt-get clean is now automatic
> Official Debian and Ubuntu images automatically run apt-get clean, so
> explicit invocation is not required.

references:
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#apt-get
03e2923e42/contrib/mkimage/debootstrap (L82-L105)

Change-Id: I8d40db041e079adea69e7f085a616b68c7c0ff08
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/225823
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-02-14 20:55:40 +00:00
Derek Bender 62d5f15794 Update postgres package names
Fixes: CCI-234

Test Plan:
- COMPOSE_FILE=docker-compose.new-jenkins.yml docker-compose build --no-cache --pull postgres

flag = none

Change-Id: Ida9096da76d219b6c8d36e803de345c6bc72a375
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/226603
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-02-14 14:33:56 +00:00
James Butters 9f94d2fcbd spec: improve the html spec_failures report
flag = none

Change-Id: I970b174a716e4c8a2f2e457ab37027a449659848
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/224628
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-02-12 23:54:02 +00:00
Rex Fleischer 91a02b982c reuse the pattern from rspec for selenium coverage
flag = none
fixes: CCI-230

Test-Plan:
see if it gets published correctly
https://code-coverage.inseng.net/canvas-lms-selenium/coverage/#_AllFiles

Change-Id: I7492d37a23dd54e02f2d76d1be1482d27d9439d8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/226434
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-02-12 22:20:28 +00:00
Rex Fleischer 527ec9c6ed add rspec coverage to main-for-coverage build
fixes: CCI-170
flag = none

Test-Plan:
manually main-for-coverage with this specref and ensure
coverage is uploaded

Change-Id: Ifc67a65157e8ad5853b01664fe81e177f8bba0d6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/226086
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-02-12 16:45:43 +00:00
Derek Bender f682c195c8 Filter printenv in jenkins output
Filters keys ending in _KEY or _SECRET

Closes: CCI-202
flag = none

Test Plan:
- keys like GERGICH_KEY are no longer printed in the builds

Change-Id: I3c6b7cc882ba36b291dc44ac5fe9c958aa24cd60
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/224898
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-02-04 14:14:08 +00:00
Rex Fleischer 6042d8e5b0 add the master-bouncer check cron build
fixes: CCI-181
flag = none

Test-Plan:
run the build and ensure the output is the same
as the old jenkins check

Change-Id: I3bff3c2abd09177a0b459047975011365d5e0fd3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222429
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-01-30 16:48:02 +00:00
Rex Fleischer f729a6a63e add sentry env to js tests when running coverage
note that deprecation aggregation should only
happen when running coverage because of memory.

fixes: CCI-190
flag = none

Test-Plan:
ensure that things get to sentry when running coverage

Change-Id: I8916cd050843c231161693b0e072687cf27120f3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223994
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-01-28 16:45:48 +00:00
S. Jacob Powell e52fe12c36 Allow forcing a failure in each JS stage
This is a great canary for making sure we
report failures correctly,
when they happen.

test plan:
With the force-failure flag,
it should fail all JS stages
Otherwise, they pass like normal.
The flag sets the "FORCED_FAILURE"
environment variable to "true"
to fail the stages.

See
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Ftest-suites%2FJS/detail/JS/5269/pipeline
For an example of this flag being set.

fixes: CCI-188

flag = none

Change-Id: I32a51550d17140c6ed8c5423a31f98d7e71282bc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223294
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-01-20 21:18:25 +00:00
Rex Fleischer 01165c1db3 spec: testing changes for js failures
Change-Id: I7b20ca53f0defdc78ffd285540e62d1b2bf51b86
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/223373
Tested-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-01-15 22:18:14 +00:00
Rex Fleischer 58e4cab04a pull js coverage from test runs and upload an aggregate
[force-run-coverage]

fixes: CCI-112
flag = none

Test-Plan:
find the coverage is published at:
https://code-coverage.inseng.net/canvas-lms-js/coverage/

Change-Id: I43757aa7b137f2494822743e860f91194a8d0ce6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222083
Reviewed-by: Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-01-15 19:36:57 +00:00
S. Jacob Powell 85fe2246e9 Ensure all JS stages output test results
test plan:
See the following link for examples of failing in each stage,
as well as the test output being correctly loaded into
the Tests tab:
https://jenkins.inst-ci.net/blue/organizations/jenkins/Canvas%2Ftest-suites%2FJS/detail/JS/5082/pipeline

fixes: CCI-178

flag = none

Change-Id: I43c16ce7b589eb69cbe266c0929a722325ece2cf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222604
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Powell <spowell@instructure.com>
Product-Review: Jacob Powell <spowell@instructure.com>
2020-01-15 06:01:08 +00:00
Rex Fleischer df21d2730d fully setup master bouncer checks
[skip-cache]

do do this we had to add the master bouncer secret in
jenkins as well

fixes: CCI-166
flag = none

Test-Plan:
look at the logs and ensure the master bouncer check runs

Change-Id: Id9b72d1863863bf4e0bf2927e52c92ae87d937c3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221473
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2020-01-10 15:10:32 +00:00
James Butters e608211798 spec: remove smoke test stage
It is time to remove the temporary smoke test stage.

closes: CCI-129
flag = none

Change-Id: I5df4e4a5de44516fde19201a509c5c2d3ce1e973
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222546
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-01-09 17:52:02 +00:00
Derek Bender d48348d032 Spec: Add escape hatch for build caching
[skip-cache]

Closes: CCI-69

Test Plan:
- in the job for this patchset look for the following message:
  "Build Cache is disabled! <snip>"

Change-Id: Ie9bc534f83aa821a5bb73818175397a11b2c365e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221866
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2020-01-09 17:48:32 +00:00
James Butters fcd5a4fee8 spec: update version of chrome to 78
closes: CCI-162

flag = none

Change-Id: Id03868b8095a948929fd39ae74d0c70a5eef0df9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221262
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2020-01-09 17:08:52 +00:00
Landon Gilbert-Bland f45ab202a3 Generate schema.graphql on demand
This will fix some issues with jenkins builds failing if the
patchset is behind some newer graphql changes, as well as allowing
us to include content defined in our plugins in the graphql.schema
file.

Test Plan:
  - Jenkins passes

fixes USERS-210

flag = none

Change-Id: Ic44849ee57955e0b90395661a66f6d5840a38e87
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/222029
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Landon Gilbert-Bland <lbland@instructure.com>
2020-01-06 21:12:42 +00:00
Rex Fleischer b79c3551b4 add gergich label to review
fixes: CCI-169

Test-Plan:
make gergich give -1 and ensure it's marked in the correct
area in the PS

Change-Id: I471b92b075cbea00d9f505e666348d1e4aecc285
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221678
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2019-12-20 22:01:44 +00:00
James Williams 2edbedf0ff spec: improve error reporting
Change-Id: I7a47e064c483170b7815d1c3b6a69ff52605a107
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221326
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2019-12-20 20:41:37 +00:00
Rex Fleischer 38b420ab71 add common spec reporting to selenium and rspec builds
fixes: CCI-4

flag = none

Test-Plan:
make changes to fail the builds and ensure they are reported.

Change-Id: If5c9d9238744a523780c49d705dd362659fe2289
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220936
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-19 16:02:21 +00:00
Rex Fleischer d7d95e62aa cleanup main jenkins file for better usage
fixes: CCI-158
flag = none

Test-Plan:
make sure there are no artifacts when build succeeds.
also make sure linters dont run when merging.

Change-Id: Ibf812480fbcdbf886ffd282dae7146065a7e8ead
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221107
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-18 20:43:00 +00:00
Rex Fleischer ce69038367 add canvas quizzes tests
fixes: CCI-137
flag = none

Test-Plan:
make a change to the canvas quizzes app and see if the build
works as expected

Change-Id: Ib5350cf2dfa9118ec203233a6d3f617ae7cb6394
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220755
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-16 22:54:30 +00:00
Rex Fleischer 0c4709a576 add compile assets to linters
fixes: CCI-83

flag = none

Test-Plan:
ensure gergich capture command works as expected

Change-Id: Icb14d6765654ed6c8a573f99a3fc98fe9f32cdf0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219985
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-13 22:01:30 +00:00
Derek Bender cf4c31ecac Fix standalone performance build for nightly runs
Closes: CCI-7

flag=none

Test Plan:
- Main build passes normally
- Trigger a build manually for `selenium-performance-chrome` with this
  patchset's refs/changes/18/219818/<PATCHSET_NUMBER>
- The build should run normally without configuration type failures

Change-Id: Icc67d1274783b47166ea10f09061cc76727fbc62
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219818
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-12-12 22:42:11 +00:00
Rex Fleischer 4e2ce175d8 allow the docker-cleanup script to fail
fixes: CCI-151

flag = none

Test-Plan:
make sure it runs through the pipeline correctly

Change-Id: Ib1b76010b8122dcb76d9f257a1f2d674f6afc2c1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220247
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-12 16:26:24 +00:00
James Butters 61d94bdf96 Trigger the selenium build
Trigger the selenium build so we can watch for issues and flaky
specs. Skips a few flaky specs with jira tickets to come. Set
reruns to 2 so we can rule out any minor flaky specs.
rspec-tests.sh and rspec-with-retries.sh removed nounset and all logging
for rspec-with-retries.sh.

fixes: CCI-126
flag = none

Test plan:
Selenium builds are triggered with each ps from the main-canvas build.

Change-Id: I504e1b158e1c85e9c137a5b5757be101207420d0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219425
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-12-12 15:31:30 +00:00
Clay Diffrient ab7531bdac Fix package translations build
The build wasn't working to actually commit things, this
fixes a changed username to allow that to happen.

Test Plan:
  - Translation build passes

refs USERS-45

flag = none

Change-Id: I4f1102cd65e62739689ebb02d54b623cdf2c3e9f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219052
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-12-11 18:10:25 +00:00
Rex Fleischer 2286c70a2e add a prefix to the cache migrations.
inside the dockerCacheLoad and dockerCacheStore methods, a prefix
is automatically added in the method if there is none that is the
name of the build. that caused the calls to try and pull different
images when in different builds. add this prefix will cause
the same image to be pulled across builds.

fixes: CCI-150

flag = none

Test-Plan:
look in the subbuild and make sure its pulling the same cached image

Change-Id: I78852d21e50a14fc7804ccd55aaea74bb51bacb0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/220199
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-10 21:01:43 +00:00
Robert Lamb 7bc28bf881 spec: remove COMPOSE_FILE from JS shell scripts
refs: CCI-131

test plan: The JS tests still pass.

Change-Id: I382aeed29388da45f611b526c9485209c74fb6f1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/219341
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
2019-12-04 17:23:18 +00:00
Rex Fleischer f9edb9a513 add graphql linter and cleanup some groovy scripts
fixes: CCI-115

Test-Plan:
do these steps in one PS:
1 - make some changes that would fail the graphql
2 - add the skip-ci flag in commit message to skip old jenkins
3 - set the GERGICH_PUBLISH = 1 in the main Jenkinsfile
4 - look at patchset 9 for these

Change-Id: I9f3a7028cac5c659d8e3a3b8c8e6f6fbe5423bc2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/218401
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-12-03 19:11:01 +00:00
Robert Lamb 75054ff4f5 Rename build/new-jenkins/frontend/ to js/
Fixes: CCI-120

Test plan: New Jenkins JS build passes

Change-Id: I772e1a2d2a30d62cfcb875d1c6c08e2177f9f311
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/218959
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
2019-12-03 00:56:38 +00:00
James Butters e08fceccbc spec: trigger contract-tests builds and propagate results
closes: CCI-124
Change-Id: I9868eeb09686fe7d29ad80c78863f09636c2b3de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/218716
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Tested-by: Jenkins
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-12-02 21:12:17 +00:00
Derek Bender 2c6f811d1c Add bash improvements to build scripts
Fixes: CCI-87

Change-Id: I60068065e5b24353f489bb73584567279818e58f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/217240
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-11-26 23:45:58 +00:00
Rex Fleischer caa23cbd8d add gergich integration to builds
also added a commit flag checker and moved the credential
methods to another location to share in linters build.

fixes: CCI-80

linters build changes:
- added build param: GERRIT_CHANGE_COMMIT_MESSAGE
- added build param: GERRIT_HOST
- added build param: GERGICH_PUBLISH

Test-Plan:
made some changes and saw gergich send -1 those changes.

Change-Id: I8ff32e1e890f495d4afd0f9791ff183dfeabf750
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/217416
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Derek Bender <djbender@instructure.com>
QA-Review: Rex Fleischer <rfleischer@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-11-22 20:08:11 +00:00
Derek Bender 67960857c4 Fix cassandra build step for cached image
Closes: CCI-107

test plan:
- build passes when using the cached cassandra image
  (i.e. the keyspace already exists)

Change-Id: I0df0a1ff141acd4a30091f544b1058b24163dfba
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/218041
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-11-21 16:41:05 +00:00
S. Jacob Powell 8f6dad2acd Enable vendored gems and loading migrated dbs
test plan:
This enables vendored gems to propagate, since those will have been
fixed by the first part of this commit which is ticket CCI-96
Loading migrated images is also enabled again in this commit, since they
will be correct after merging the CCI-96 patchset (they will be stored
on merge of that commit)

This follow up commit allows for a two-step verification that the new
cassandra changes actually work, and don't fully rebuild cassandra but
pull the base image and configure it instead. This will also fix
vendored gems from failing due to having to build cassandra, since it
will be using an existing image, therefore propagate will be turned back
on

fixes: CCI-101
Change-Id: I64803acb324132784e8caf5eb3957e094dbf7adc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/217637
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: S. Jacob Powell <spowell@instructure.com>
2019-11-19 16:12:45 +00:00
S. Jacob Powell 280ce640f3 Use prebuilt cassandra for caching migrations
test plan:
This now uses the starlord image of cassandra and passes in
a configuration that changes the data directory so that the commited
image includes the database and any migrations.

I tested this locally by building the cassandra image, checking that the
cassandra data files were indeed saved into that directory, saving
a custom file in the data directory, committing the container, stopping
the container, running the committed image, and verifying that the file
that was in the data directory is indeed still there (if it was in
a directory that was VOLUME'd, it would not have shown up there)

This also has been tested/will be tested by disabling loading the cached
migration images, forcing a rebuild of cassandra to see if it works
correctly.

A follow up commit enabling loading cache after this one will then load
the newly built cassandra image (and other database images), since it
will have been saved on the merge of this commit.
The follow up commit will enable vendored gems propagation again,
which depended on
a prebuilt cassandra so that it isn't so flaky.
(follow up ticket: CCI-101)

fixes: CCI-96
Change-Id: I4ce101f119ff6bdfd70bbdaeb4733e431184c1ee
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/217622
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: S. Jacob Powell <spowell@instructure.com>
2019-11-18 20:40:50 +00:00
S. Jacob Powell 7625682361 Only pull images if none are found in cache
test plan:
View the logs and see that it indeed does not call the pull.sh script
unless there are no cached migrated images

Change-Id: I7a9c5ba6a631b3a41c5bb550dfbd405413321c9e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/217524
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
QA-Review: S. Jacob Powell <spowell@instructure.com>
Product-Review: S. Jacob Powell <spowell@instructure.com>
2019-11-15 23:28:31 +00:00
S. Jacob Powell 0792f9d96a Cache migrated database
Overview:
This patchset is intended to save time by saving and loading migrated
containers and reusing the image.
It checks to see if all three database images were loaded (the cached
ones) and if so, then it uses those instead of migrating from scratch.
If one of them is not loaded, it performs the regular process.
The storing of the migrated images will only happen on merge.
It does run migrate on the cached images, but it correctly skips
anything that was already done.

This pattern will be repeated in each sub build, which should save a lot
of time not having to redo the migrations.

Test plan:
View the build and confirm that it passes when loading cached migrations
Should be about a minute or more faster

Fixes: CCI-30

Change-Id: Iba878bb646fd976deab5d624e8960cac63d09677
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/213268
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: Rex Fleischer <rfleischer@instructure.com>
QA-Review: S. Jacob Powell <spowell@instructure.com>
Product-Review: S. Jacob Powell <spowell@instructure.com>
2019-11-15 21:33:55 +00:00
Rex Fleischer f3e0163d9f add non frontend linters to new jenkins build
fixes: CCI-37

Test-Plan:
look at the build logs and ensure the linters run

Change-Id: I6abed7e07296e72d5ddfea4356e98184c0a8d698
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/215975
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
QA-Review: S. Jacob Powell <spowell@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-11-14 20:21:28 +00:00
Derek Bender 1586a140ac Add pg_collkey to postgres image for docker builds
Closes: CCI-2

Test Plan:
- specs that require pg_collkey are ran in new jenkins

Change-Id: I530373f9855d124dfc3c302e0d340f6217b8f33a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/215422
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-11-13 23:51:59 +00:00
Rex Fleischer 6225e70a9a change cleanup to aggressively remove all images and containers
Change-Id: Ie30ffa8f9da1f109177bfe06db189091fa388df8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/217076
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Rex Fleischer <rfleischer@instructure.com>
2019-11-13 21:47:24 +00:00
Clay Diffrient 5b3543ebae Create shared translation infrastructure for packages
Test Plan:
  - Translations get built and put into
    packages/translations/lib/

closes COREFE-258

flag = none

Change-Id: I05889f9c122aaf1263a6803daad8abd977b32e44
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/213813
Tested-by: Jenkins
Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com>
QA-Review: Steve Shepherd <sshepherd@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-11-06 22:42:03 +00:00
Cameron Matheson e0804049cd run dynamodb in new jenkins
Change-Id: Ifc6676447ad065a30f3e8154444d5c00ed8afac3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/211347
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
2019-10-31 17:10:55 +00:00
James Butters 26c3a988ea spec: new cleanup for docker
we have some dangling images that need cleanup as well as some
canvas-lms images that aren't part of docker-compose.

Change-Id: I575aad1cda9d51430f949d81807d33d35edded1e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/214346
Reviewed-by: S. Jacob Powell <spowell@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
2019-10-23 17:00:26 +00:00
Derek Bender ab1f2e4534 update yarn in docker to 1.19.1
Change-Id: I27be3f641eee9953130ce9b9303a9c4dbae886fd
Reviewed-on: https://gerrit.instructure.com/213343
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-10-17 15:21:58 +00:00
Derek Bender dc04b25729 update yarn for docker
Change-Id: Ib93ee0d2b0d2a7f3a6e5edfda4d2b80e7c1f8c97
Reviewed-on: https://gerrit.instructure.com/210538
Tested-by: Jenkins
Reviewed-by: Spencer Olson <solson@instructure.com>
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-10-14 14:45:44 +00:00
James Butters 2088c857b7 spec: add performance selenium specs to new jenkins
Change-Id: I1efbad0b77c6c67f2d478cfaf219dcdebea1aa4d
Reviewed-on: https://gerrit.instructure.com/212074
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-10-04 20:35:42 +00:00
James Butters ea88c7087e spec: downgrade docker chromedriver
there are some bugs in the newest version causing spec failures.

Change-Id: I5b2864815f552831d273b74843e129228b581f55
Reviewed-on: https://gerrit.instructure.com/211810
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-10-03 13:55:16 +00:00
James Butters b3e014a81a spec: add rspec-with-retries.sh for better rerunning of rspec
Change-Id: I5728c9cd0c36c42d79fd0da0f0e9b2849df54c7f
Reviewed-on: https://gerrit.instructure.com/210582
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-10-01 14:23:54 +00:00
James Williams 99a54a8c4a spec: pull new jenkins images from starlord
so we don't get rate-limited from docker hub

closes #CORE-3344

Change-Id: I5c8f0e1716a84966dc9b0f0f8595a474649f89cb
Reviewed-on: https://gerrit.instructure.com/211250
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2019-09-27 15:31:42 +00:00
James Williams 56a487811b spec: knapsack for selenium
Change-Id: I30c0c0006de8779dea1743d6c626022756f05d5a
Reviewed-on: https://gerrit.instructure.com/210564
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-09-25 14:13:39 +00:00
James Williams 18cad7be4c spec: undo security.yml overwrite
Change-Id: Id4a31fe3d3c8784b65730d7c62d3bd1ef68767ed
Reviewed-on: https://gerrit.instructure.com/210756
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2019-09-25 12:17:37 +00:00
James Williams bc1a16a557 spec: copy new jenkins config to container afterwards
instead of replacing the originals in the image

Change-Id: Ibb32bb32cf2487cf17eb4688eea30d19400b02a7
Reviewed-on: https://gerrit.instructure.com/210409
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
2019-09-23 19:51:41 +00:00
James Butters d7b0dc2625 spec: reruns for rspec
closes: CORE-3299

Change-Id: I0febb9d4f6fdcf3f48d4e0079e7a230ac505218d
Reviewed-on: https://gerrit.instructure.com/208862
Tested-by: Jenkins
Reviewed-by: James Williams <jamesw@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-09-18 20:01:14 +00:00
James Williams 0fd21688a1 spec: set up cassandra keyspaces before vendored gems build
Change-Id: I3525df178c083843ee831877d599e60e4da86188
Reviewed-on: https://gerrit.instructure.com/209719
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2019-09-17 13:34:00 +00:00
Clay Diffrient 0b008f7c06 Run jest tests in band on new jenkins
Test Plan:
  - Tests pass on new jenkins

refs CORE-286

Change-Id: I4d17bde38ab4d2c5e2680e8797256314374b3469
Reviewed-on: https://gerrit.instructure.com/209426
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
Tested-by: Jenkins
2019-09-13 19:02:11 +00:00
James Williams 2768dda033 use knapsack in new jenkins rspec build
closes #CORE-3292 #CORE-3293

Change-Id: Id54c8568bd1ca45929f35926e0eebdd558e68a58
Reviewed-on: https://gerrit.instructure.com/207602
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Jenkins
2019-09-13 15:19:34 +00:00
Clay Diffrient 66d1073b48 spec: Make sure to use the proper docker-compose for cleanup
refs COREFE-286

Change-Id: I0f1b399621a200efe69e8d37c553290e1e172949
Reviewed-on: https://gerrit.instructure.com/208904
Tested-by: Jenkins
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2019-09-11 20:30:33 +00:00
Clay Diffrient f28c4deb14 Pass COVERAGE variable into containers running tests
Test Plan:
  - Merge commits after this should generate coverage

refs COREFE-256

flag = none

Change-Id: Iab459a3ec393d899cb78a52293b5456d0b14bf4c
Reviewed-on: https://gerrit.instructure.com/208641
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-09-10 15:24:46 +00:00
James Butters 459e0ed8a9 spec: generate html report
closes: CORE-3234

Change-Id: I8a85ed899e1097e5c91276d97c8339931cda2e1a
Reviewed-on: https://gerrit.instructure.com/208309
Tested-by: Jenkins
Reviewed-by: Clay Diffrient <cdiffrient@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-09-09 20:12:26 +00:00
Clay Diffrient 41a0220079 Rename linters-and-js build to frontend
Change-Id: If43ab8c5b9fd291ae06bc1975f443cb6c3e0140e
Reviewed-on: https://gerrit.instructure.com/207991
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Clay Diffrient <cdiffrient@instructure.com>
Product-Review: Clay Diffrient <cdiffrient@instructure.com>
2019-09-05 20:15:10 +00:00
Clay Diffrient b2c3c62724 Add js tests to new jenkins
Change-Id: Ia30e8fd105738a95fb10364e1643be179876b81b
Reviewed-on: https://gerrit.instructure.com/207502
Tested-by: Jenkins
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
2019-09-04 20:06:02 +00:00
Clay Diffrient 8247f43008 Add linters to new Jenkins
This moves eslint, stylelint, and xsslint to be part of our
JS build pipeline.  It does not account for other linters that
are more general like tatl_tael linters and commit messages or
non-frontend language specific linters like rubocop.

Test Plan:
  - The linters-and-js build on New Jenkins should run and actually
    run the linters specified above.

closes COREFE-220

flag = none

Change-Id: I8f633caf9af025c83bbe68fbd1536276a838c159
Reviewed-on: https://gerrit.instructure.com/206106
Tested-by: Jenkins
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Ryan Shaw <ryan@instructure.com>
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>
2019-09-03 19:18:30 +00:00
Cody Cutrer 052fa33fd1 run some specs under new jenkins
closes CORE-3248

Change-Id: I2cdc3a875f5d58113941fa09f265b7c5298926fd
Reviewed-on: https://gerrit.instructure.com/206128
Tested-by: Jenkins
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2019-09-03 17:38:39 +00:00
Cody Cutrer 383507e78b spec: don't use a separate script for gems under new jenkins
just always ensure we're in the correct directory

Change-Id: I827edc18efd3ea8795e1b3277324e4e71bffb143
Reviewed-on: https://gerrit.instructure.com/206089
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2019-08-29 16:00:13 +00:00
James Butters 355b92601b 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>
2019-08-26 12:43:08 +00:00
James Butters 0d7149ebac spec: add docker cleanup script
closes: CORE-3267

Change-Id: I65830fbb5e710adfdcb713ed69dfbe83b30846a8
Reviewed-on: https://gerrit.instructure.com/206094
Tested-by: Jenkins
Reviewed-by: Brent Burgoyne <bburgoyne@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-08-23 14:09:26 +00:00
James Butters 04d45e6031 create skeleton jenkinsfiles for builds
closes: CORE-3247

Change-Id: I538b52f65c683a5896cb87ae9c7313bc4ed13f6b
Reviewed-on: https://gerrit.instructure.com/205078
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Robert Lamb <rlamb@instructure.com>
Product-Review: Robert Lamb <rlamb@instructure.com>
2019-08-20 16:09:00 +00:00
James Butters e6eb021267 move vendored gems specs on new jenkins
Change-Id: I98bc01af1f89f77388535243381b5bc6baf10984
Reviewed-on: https://gerrit.instructure.com/202971
Reviewed-by: Derek Bender <djbender@instructure.com>
Reviewed-by: Robert Lamb <rlamb@instructure.com>
Tested-by: Jenkins
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2019-08-15 17:26:38 +00:00
Derek Bender b942bc2876 Fix yarn for initial docker-compose build
Fixes: GRADE-2257

It appears that several `yarn build:canvas` scripts in
packages/ open files with `rw` permissions that they
don't have at an early enough stage in the Dockerfile.
We were previously making all the directories writeable
but this wasn't going far enough since it was ignoring
files. I have a hunch that the files don't need to be
opened with `rw` permissions but that might be a problem
with babel or something else upstream. Since we eventually
make all files owned by docker:docker might as well do it
sooner with `COPY --chown=docker:docker`.

A follow up patchset should do add this feature to all
the other COPY directives.

Change-Id: I6a09161a34d6895284a87750091de3f82aa44e15
Reviewed-on: https://gerrit.instructure.com/197837
Tested-by: Jenkins
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
Reviewed-by: Steven Burnett <sburnett@instructure.com>
2019-06-17 22:58:54 +00:00
Tucker McKnight 0369e80690 spec: Allow tests to continue if data_loader fails
Also print out debug info while it's trying to pull archives
from AWS S3.

Change-Id: I41dec09de8c67652b4900255a2e53f1655dfab5d
Reviewed-on: https://gerrit.instructure.com/196747
Tested-by: Jenkins
Reviewed-by: Robert Lamb <rlamb@instructure.com>
QA-Review: Tucker Mcknight <tmcknight@instructure.com>
Product-Review: Tucker Mcknight <tmcknight@instructure.com>
2019-06-11 21:22:17 +00:00
Cameron Matheson 22982b3cd9 remove RCE_API_PORT from docker_composer
Change-Id: I9a769d847d4c04e15e1e756c41db6f1d21a9d989
Reviewed-on: https://gerrit.instructure.com/195648
Tested-by: Jenkins
Reviewed-by: Rob Orton <rob@instructure.com>
QA-Review: Rob Orton <rob@instructure.com>
Product-Review: Rob Orton <rob@instructure.com>
2019-05-31 15:20:01 +00:00
Derek Bender 989813fe76 Remove conditional for docker bundler lock step
Restores POSIX compliance

Closes: GRADE-2203
Closes: gh-1451

Test Plan:
- works on systems without modern bash syntax (i.e.`[[]]`)

Change-Id: I2c4924a9abe8d0561782150d3daf4df10b7a7fd1
Reviewed-on: https://gerrit.instructure.com/194898
Reviewed-by: Keith Garner <kgarner@instructure.com>
Tested-by: Jenkins
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-05-23 16:03:09 +00:00
Derek Bender a83f5ce73c Update bundler in Dockerfile
Change-Id: Ia99950a92586c53d0989fd2a2b628dfe5680b96d
Reviewed-on: https://gerrit.instructure.com/194697
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Jenkins
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-05-22 16:09:49 +00:00
Derek Bender b3826e0d88 Update Gemfile.lock in docker for dev
Change-Id: I4fd5d13f959de1a2b1d03175e3a3fff17ec97958
Reviewed-on: https://gerrit.instructure.com/194515
Tested-by: Jenkins
Reviewed-by: Marc Phillips <mphillips@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-05-22 16:08:53 +00:00
Derek Bender 44245dbeb3 Upgrade Yarn in Docker
Change-Id: If1a391b718d66995f0c5c8ecd9e6fa49f66e439f
Reviewed-on: https://gerrit.instructure.com/194593
Tested-by: Jenkins
Reviewed-by: Carl Kibler <ckibler@instructure.com>
QA-Review: Derek Bender <djbender@instructure.com>
Product-Review: Derek Bender <djbender@instructure.com>
2019-05-21 23:15:24 +00:00