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>
In order for the `yarn build:canvas` task to work in
`packages/js-utils` canvas’s root babel.config.js needs to exist
on the filesystem.
Because our docker file didn’t do something with it in its cached
build layer steps it wasn’t there by the time docker ran that step.
Test plan:
* the docker build should not fail with:
@instructure/js-utils
| `yarn build:canvas` failed with exit code 1
…
| { Error: Babel was run with rootMode:"upward" but a root could not
be found when searching upward from "/usr/src/app/packages/js-utils"
Change-Id: I5bd4b45ca25493768a867d1662bca059c9b056cd
Reviewed-on: https://gerrit.instructure.com/194403
Reviewed-by: Derek Bender <djbender@instructure.com>
Tested-by: Jenkins
QA-Review: Ryan Shaw <ryan@instructure.com>
Product-Review: Ryan Shaw <ryan@instructure.com>