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