Test plan:
- See that TypeScript errors are reported in Gergich for prior
failing build
- Tests pass for latest build for this commit
flag=none
Refs DE-1519
Change-Id: I3cd7e8fc43d24932fdd60b296e9015d76d3671ac
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/310278
Reviewed-by: Christopher Soto <christopher.soto@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Build-Review: Jacob Burroughs <jburroughs@instructure.com>
flag=none
Test Plan:
Run setup script on a Mac.
Change-Id: I2adec5712d1afa0d7ad102bfb6a5605736ee1ea4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/309008
Product-Review: Jason Perry <jason.perry@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Dustin Cowles <dustin.cowles@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
QA-Review: Dustin Cowles <dustin.cowles@instructure.com>
closes AE-30
flag=none
test plan:
- verify Canvas boots in CD
- verify no influx of new errors in CD
[fsc-timeout=30]
Change-Id: Ifa04bebe1b09f01c6d3b8b2d8f3bb424759730f5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/308067
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
Build-Review: James Butters <jbutters@instructure.com>
Change-Id: I954402cb7016c1590748f149279865db967272a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/308110
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Adds an override file you can use to run build:watch on the packages
that have es builds (since main webpack build is getting them from there
instead of watching the src directly)
Currently this is canvas-rce and canvas-media, but more can be added
flag=none
test plan
- Remove the canvas-media and canvas-rce volumes from your
`docker-compose.override.yml` file
(see changes to docker-compose.override.yml.example)
- Update the `COMPOSE_FILE` variable in your .env file to include
`docker-compose/watch-es-packages.override.yml`
(make sure it's after your main override file)
- `docker-compose up -d` to recreate your containers
- `docker-compose logs -f webpack`
Observe that the canvas-rce and canvas-media builds happen before
webpack starts
- Wait for the initial webpack build to complete
- Make a change to some JS file under canvas-rce and/or canvas-media
Observe in your webpack container logs that webpack rebuilds
- Go to https://canvas.docker and make sure the change you made is
reflected
Change-Id: Id08d52cc35bf120723b6ed05817ea01644ebec23
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/300091
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Yona Appletree <yona.appletree@instructure.com>
QA-Review: Jon Scheiding <jon.scheiding@instructure.com>
Product-Review: Jon Scheiding <jon.scheiding@instructure.com>
Update this script so that you can call it with a `--domain-tld` option
This accommodates local setups that want to use SSL certs provisioned
against `local.inseng.net`, or other local setup variations
flag=none
test plan
- `docker rm -f http-proxy`
- `. script/common/utils/dinghy_proxy_setup.sh`
- `setup_dinghy_proxy`
* Expect that the `http-proxy` container is created
- `docker inspect -f '{{json .Config.Env}}' http-proxy`
* Expect to see `DOMAIN_TLD=docker`
Repeat the above, but with
`setup_dinghy_proxy --domain-tld local.inseng.net`
Expect to see `DOMAIN_TLD=local.inseng.net`
Change-Id: I9d13ec497cf087e9db174ac98a793933afcb20ce
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/304582
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Mysti Lilla <mysti@instructure.com>
QA-Review: Mysti Lilla <mysti@instructure.com>
Product-Review: Jon Scheiding <jon.scheiding@instructure.com>
only clear the shard cache from multicache, and therefore
support distributed `delete_matched`
Change-Id: Iebda2e8b2df0a1aa85997c2ede47b113f0fadc15
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/300099
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
test plan:
- if you run script/docker_dev_setup.sh in a local repo
that has been used natively, you should get a prompt warning
you that your local configuration will be clobbered if you
continue and suggesting you check out a clean copy of the repo
to use in Docker
Change-Id: Ia9a22f5fcc0a07a1ef7df6e7773226a66dc4d7dc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/297353
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ed Schiebel <eschiebel@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Jeremy Stanley <jeremy@instructure.com>
macOS and docker desktop's support of virtiofs is a better path forward
Test plan:
- Docker setup script works on MacOS
Closes FOO-2982
Change-Id: Ibb64390420bfa7ade82f00d962282db41917a89a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/294699
Reviewed-by: Caleb Guanzon <cguanzon@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Caleb Guanzon <cguanzon@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
when mutagen is found to be installed we need to set IS_MUTAGEN
to ensure all other steps are running the correct steps.
flag = none
Test Plan:
-Jenkins passes
-linux with mutagen, run docker_dev_setup.sh with no errors
-the correct docker-compose.override.yml is copied
-mac, no changes. docker_dev_setup.sh should still work
Change-Id: Ia8111c005a344723d492a15a980770c4a63e2d12
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/290807
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
By having the `DNS_IP` point to a reserved
IP for the loopback, this causes all DNS lookups in
new containers to loopback to itself and unable to
find containers outside their network if the internal
DNS server(127.0.0.11) cannot find it as it doesn't
add the namespace of the dinghy-http-proxy container
flag = none
test plan:
1. Run `source script/common/utils/common.sh`
2. Run `setup_dinghy_proxy`
3. Ensure that
`docker-compose container inspect http-proxy`
has `DNS: 192.168.42.42`
4. Ensure that
`/Library/LaunchDaemons/com.user.lo0-loopback.plist`
has the correct alias IP.
5. Change the IP in the
`/Library/LaunchDaemons/com.user.lo0-loopback.plist`
and re-run `setup_dinghy_proxy`
6. Ensure that the script completes and
fixes the IP in the file
closes: QUIZ-9476
Change-Id: I28a0668678da64e02bf2d05083d34992c3ab229a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/289650
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Alex Slaughter <aslaughter@instructure.com>
QA-Review: Mark McDermott <mmcdermott@instructure.com>
Product-Review: Mark McDermott <mmcdermott@instructure.com>
we should still support a docker dev setup on linux without mutagen.
flag = none
Change-Id: I73874c7f5650070a237e15f5928a0e2886a1b573
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/288913
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Bobby Buten <bobby.buten@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
flag = none
Test Plan:
-Jenkins passes
-running docker_dev_setup works from fresh machine
-running docker_dev_update works
Change-Id: I7852189b035683d7cb538b2a04319dd9659e2752
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/287799
Reviewed-by: Bobby Buten <bobby.buten@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@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>
dinghy is deprecated so we are removing it from our docker setup
scripts, now defaulting to mutagen with docker desktop for mac.
flag = none
closes: DE-1099
Test Plan:
-Jenkins passes
-run docker_dev_setup from clean machine
-setup uses mutagen with docker desktop on mac
-setup uses mutagen with docker on linux
-dinghy_http_proxy can still be used
-if dinghy machine found running, fail script with message
Change-Id: I1916c16807e7893174f32074674125cec93bcb40
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/287535
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
flag = none
Test Plan:
-Jenkins passes
-Jenkins passes with eslint warning, -1 on gerrit lint review
-Jenkins passes with eslint error, -2 on gerrit lint review
Change-Id: I1eb3fed097e62eba726d5df18a958dc49c2ccdb2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/287237
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
QA-Review: Ahmad Amireh <ahmad@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>
Switches from standalone containers to explicit node+hub config
Selenium 4 has some differences in handling stale elements that we
should be aware of moving forward
closes OUT-4988
flag=none
[skip-stages=Flakey Spec Catcher]
Test-plan:
- make sure screenshots can happen for failures
- retrigger a few times and make sure things pass
- verify build summaries are intact
- verify FSC can still run seleniums
- verify local selenium running still works
- firefox / chrome / edge where applicable
- verify docker selenium running still works
- firefox / chrome / edge where applicable
Change-Id: I8f2fe5a34d712b5ccd7191bae7a9aeeb6f1f473d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/284811
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Robin Kuss <rkuss@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
flag = none
Change-Id: I5e3fc94bad9c24fc873956adde10a870ca1cf8f8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285848
Reviewed-by: Andrea Cirulli <andrea.cirulli@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
Test Plan:
-Jenkins passes
-if dory is not installed and no dinghy-http-proxy container
-will default to using dinghy-http-proxy setup
-if dory installed and dinghy-http-proxy container
-prompt to use one or the other
-if dory installed and no dinghy-http-proxy container
-dory will start
Change-Id: I79eceee014d3bea3a6957b9b9b6d751bd90b752a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283975
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
update docker_dev script to use mutagen 0.13.0, new dependency
mutagen-compose, update commands to use mutagen-compose.
closes: DE-1014
flag = none
Test Plan:
-Jenkins passes
-docker_dev_setup passes with all required dependcies
-with beta version of mutagen
-docker_dev_setup fails, alerting to missing dependency
-with mutagen 0.13.0, without mutagen-compose
-docker_dev_setup fails, alerting to missing dependency
-with docker desktop installed to Docker/Desktop.app
-docker_dev_setup does not fail
Change-Id: I3e18403912ee2a362c306da2df88eb58faa39db1
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283663
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
refs SEC-4437
flag = none
[pin-commit-respondus_lockdown_browser=8746ff2ccfd6e9ac1d7280687c88e9fa67c0f693]
[pin-commit-multiple_root_accounts=7b11533084764b3a34f390e9a75df26e9dd871f9]
rationale in the script file and more context in the accompanying ticket
~ test plan ~
edit package.json and modify one of the explicit workspace dependencies
such as @instructure/ready to have a specifier other than "*", run the
script and verify it exits with 1
yarn --silent workspaces info --json | \
node script/yarn-validate-workspace-deps.js 2>/dev/null
Change-Id: I6624ada67a21d433477a7ad4d36acf5801853b7a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282948
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ben Rinaca <brinaca@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
refs DE-966
flag=none
TEST PLAN:
ensure build completes and all tests run successfully
Change-Id: I82ef402eb790fafce53393b17b4695c9151e1745
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281489
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ben Rinaca <brinaca@instructure.com>
QA-Review: Bobby Buten <bobby.buten@instructure.com>
Product-Review: Bobby Buten <bobby.buten@instructure.com>
We're back to makign installing pulsar the default again. Later test
builds broke without it.
Change-Id: Icb994b5dc5a566537c4c9ad513ab0f0b2ca2893e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281209
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
In earlier attempts to make pulsar optional for our docker builds, the
dockerfiles that need to be in sync got out of sync. This returns them
to being in sync, and makes the pulsar gems optional which is better for
open source users.
Change-Id: Id8a02878bb61cf589670526da0626a90da530a58
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281101
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
pulsar is on hold, so this patchset doesn't remove it from our docker
build, but makes it so you have to knowingly add it add it at docker
build time and at install_assets.sh time.
Change-Id: I1866191073b271b9309f96fb5363dc1f73e663a8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281091
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
This patchset adds the ability to not install the pulsar library and
gems when building canvas in docker by adding an argument to the
Dockerfile and a command line argument to install_assets.sh.
Pulsar pre-built libraries are currently x86 only. ARM64 users will want
to do the following:
- When building canvas docker images do: --build-arg WITH_PULSAR=0
- When installing assets: script/install_assets.sh -p
Change-Id: I738c9172050c1eff4648531b62456199673ae691
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281070
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
[skip-stages=Flakey]
manual
this isn't a complete fix, but addresses many offenses
note in particular for feature flags the enable_at key
has changed from doing eval to a Date.parse.
Change-Id: I1381a107c238dc7102a815cc0b38df390299e59f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279085
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Change-Id: Ica5fdc2ea8306483e8597b9c4ea4f40f92b13c24
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279017
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
[skip-stages=Flakey]
auto-corrected, and also introduced empty? method on several
file-like classes so that the autocorrect is safe on them
Change-Id: I7c84a39fc3f11cad50bf4ccb3cd97883881c2129
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/278756
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
auto-corrected, but so many tweaks after to gemspecs it may as well
have been manual
Change-Id: I69aeb6e216894462d6d893ed4c123aa9898fc72f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/278516
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
need to wrap the sub-process execution of bin/rubocop in a
Bundler.with_unbundled_env so that _it_ can also use bundler/inline
to install its dependencies
Change-Id: I08b86288152c156f3704d1e4f9c5bfb6a5cf7867
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277834
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
[skip-stages=Flakey]
the balance. mostly. Lint/UriEscapeUnescape is put in the pending
block because it's so touchy, and I didn't want to deal with it
right now
all manual
Change-Id: Ibeb81e013f56f160d51f7d237a9bcfe98daa1e53
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277569
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>