the bundle check was falsely reporting as dependencies met
with updates to Gemfile.rails70.local.partial. Remove the bundle
check and just run bundle install, if there are not updates
it's still fast and doesn't cost any time
Test Plan:
-with a clean state
-downgrade a gem in Gemfile.rails70.lock.partial
e.g. strscan (3.0.6) -> 3.0.5
-run docker_dev_setup.sh
-confirm gem version in Gemfile.rails70.lock
-restore the gem in Gemfile.rails70.lock.partial
-run docker_dev_update
-the gem is updated in Gemfile.rails70.lock to match
Gemfile.rails70.lock.partial
Change-Id: Ide32d45667502df7882b374de4773b63f687d153
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/315997
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>
we no longer need to remove the Gemfile.lock, remove the code that
does this as part of setup.
Test Plan:
- Jenkins docker smoke passes
- running docker_dev_setup.sh locally passes
Change-Id: Ic8807497f0f7489028ae474f0774cc5f871cb0f9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/311951
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@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>
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
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>
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>
if database exists during docker setup, give option to drop
or migrate rather than just dropping.
flag = none
Test Plan:
-Run docker_dev_setup with no existing database
-script will not prompt, creates and migrate new databases
-Run docker_dev_setup with existing database
-prompted to drop or migrate
-DROP the database; database dropped, created new and migrated
-migrate existing; only migration is ran
Change-Id: Ifbc334b3e35d22e15880ff0b5ca12b3817027b6f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/268126
Reviewed-by: Kyle Rosenbaum <krosenbaum@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>
This reverts commit 655cecbd5d.
Reason for revert: broke dev environments
Change-Id: I97f47a8ef7ac369b3cb30e448a3cfa9997c03930
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267650
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
move asset compiling into the Dockerfile allowing for a simpler
docker dev setup.
flag = none
closes: DE-696,DE-365
Test Plan:
-mac normal setup
-mac mutagen setup
-linux normal setup
-linux mutagen setup
Change-Id: I7e178c1ca91ee1908c4af55e03ec0010f5abce8e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266332
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
flag = none
closes: DE-529
Test Plan:
Test All On Linux and Mac
-docker_dev_setup without mutagen
-test with dinghy not created, down, missing
-docker_dev_setup with mutagen
-with docker desktop not running
-with and without dory
-docker_dev_update with and without mutagen
-with update-code option and without
-update_canvas for local is not broken
-following Next Steps, all works for mutagen
Change-Id: I7690dc2d919cf1b9d8af86200ec8439da9135d16
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/262293
QA-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Align the UX of docker_dev_update to the one we implemented
on the setup script. Use the spinner where the commands take
longer to be executed.
refs DE-625
flag = none
test-plan:
- Local docker dev smoke passes
- docker_dev_update works locally
Change-Id: I94b1eca298b3f398dfb88dff1ceedeb66d5a6c22
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263186
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
refs DE-594
test plan:
- run local docker dev smoke test build in Jenkins
- verify permissions of application directory
- modify jenkins agent workspace to include
application directory.
- rerun local docker dev smoke test build
- verify permissions of application directory
Change-Id: I86bd669af30d7cc0286cccd5f6771f91a0f4afe9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261717
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
There are a lot of if -z $JENKINS to check if the script is running on
Jenkins. Since we don’t want that repetition in the code we should
create a function in common is_running_on_jenkins.
refs DE-622
flag = none
test-plan:
- local docker dev stage passes
- docker_dev_setup/update/rebase passes locally
Change-Id: I53191af729c8ce5b4b6d338c39bd20bc532d496f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/262824
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
to save time and clear up logs, start web contain and
dependant services then run docker-compose exec instead
of docker-compose run --rm for each command. No more
waiting for container to spin up and stop, also clears
the logs of all those extra messages.
closes: DE-593
flag = none
Test Plan:
-run docker_dev_setup.sh, should be no noticable difference
-run docker_dev_update.sh, should be no noticable difference
-Jenkins local-docker-dev build passes
-canvas_update for local non-docker still works
Change-Id: Id1e72f8af948905385aed6769a8d793d962e2e1f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/262258
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Add a log that gather all the output of the commands, hide
output to the user and show a spinner if the commands takes
longer to run.
refs DE-482
flag = none
test-plan:
- local docker dev job passes
- docker_dev_setup works and the output is not shown to
the screen
- interrupt the execution of docker_dev_setup and check if
the user is notified with the interruption
- force docker_dev_setup to fail and check if the error
notification is present on the screen and the log shows
the actual error
Change-Id: I84870fee23d9d1280addfffbb234335577bb3b93
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261371
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: Andrea Cirulli <andrea.cirulli@instructure.com>
local canvas does not set env var BUNDLER_VERSION so the bundler
sync will fail always for local canvas. Modify the function call
to include the BUNDLER_VERSION for local canvas.
flag = none
Test Plan:
-run canvas_update with correct bundler version, script passes
-run canvas_update with incorrect bundler version, script will
uninstall wrong version then install correct version.
Change-Id: I35cf6e86cad224e56e3de0f7e430acd81ac70cdf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/262188
Reviewed-by: Jeff Largent <jeff.largent@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Jeff Largent <jeff.largent@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
flag = none
Change-Id: I694d382a03f4b186449a8f533405d94ccb97a9cf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/262067
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
we've seen some issues with bundler version getting out of sync
on containers leading to the bundle_install_with_check failing.
Add a bundler version check to the bundle_install_with_check to
install the correct version if needed.
flag = none
closes: DE-592
Test Plan:
-running docker_dev_update passes, no noticable changes
-update bundler gem to the latest inside web container
-run docker_dev_update
-message stating wrong version of bundler found
-installs correct version and completes without error
-update bundler to latest inside web container, remove a gem
-run docker_dev_update
-message stating wrong version of bundler found
-installs correct version and installs missing gem
Change-Id: I485c36924ba0e6e7f908abd165987d3f75900b63
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261969
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@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>
in order to get better logging we need to split the migration from
initial_setup so we can easily get the prompts output without all
of the migration output.
flag = none
closes: DE-588
Test Plan:
-jenkins docker smoke build passes
-running locally, migrations for dev still run
-initial_setup only outputs the prompts for data
Change-Id: I6fac0c1bb05579d9f8c59abf32836885a7b1d231
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261773
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Add the ability to track command status and duration of
docker_dev_update
refs DE-550
flag = none
test-plan:
- ensure docker_dev_update work on Mac and Linux
without the telemetry. Using multiple combination
no flags, update-code, skip-canvas, skip-plugins etc.
- ensure the above is true also when telemetry is
enabled
Change-Id: I5d6f8185dd7d344c783e302deb6597e95692e44a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261026
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
closes: DE-567
flag = none
Test Plan:
-Jenkins passes
-docker_dev_setup.sh still works
-docker_dev_update.sh still works
-rebase_canvas_and_plugins.sh still works
Change-Id: I044ba0d3d8539a1e87bb0fef67f3b82855f4ab2c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/260842
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>