Commit Graph

26 Commits

Author SHA1 Message Date
James Butters 5a89713b86 remove bundle check and just bundle install
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>
2023-04-13 22:22:25 +00:00
James Butters 2b7fc11650 remove code to delete Gemfile.lock
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>
2023-02-24 18:00:53 +00:00
Aaron Shafovaloff 73a7fb0827 No more mutagen
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>
2022-06-27 15:33:24 +00:00
James Butters 9d324b8b5a support linux without mutagen docker setup
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>
2022-04-05 17:53:32 +00:00
James Butters 1432d3e72a Revert "Replace old config ymls with newer mutagen ymls"
This reverts commit d3fc54655d.

Reason for revert: broke M1, non-mutagen setup

Change-Id: Iddcfa0b086312b4ed22f400a61637ee248fd647d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/288011
Tested-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2022-03-28 17:38:37 +00:00
James Butters d3fc54655d Replace old config ymls with newer mutagen ymls
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>
2022-03-25 15:38:49 +00:00
James Butters 08965f67ca remove dinghy from docker_dev scripts
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>
2022-03-24 19:36:22 +00:00
James Butters b567f1f098 run db:initial setup without -T
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>
2022-02-23 20:49:58 +00:00
James Butters d8d1078abf update docker_dev scripts to work with latest mutagen release
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>
2022-01-27 19:57:22 +00:00
James Butters 679e2dfe31 option to drop database or migrate existing
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>
2021-06-30 16:30:40 +00:00
James Butters cc32af3ccd Revert "asset install in Dockerfile"
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>
2021-06-29 13:36:09 +00:00
James Butters 655cecbd5d asset install in Dockerfile
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>
2021-06-24 19:25:48 +00:00
James Butters e38b3a49be add support for mutagen setup and update.
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>
2021-04-27 19:46:36 +00:00
Andrea Cirulli 321e89c88d improve logging/output for docker_dev_update.sh
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>
2021-04-20 17:07:57 +00:00
Kyle Rosenbaum 5b996428a1 fix /usr/src/app permissions in local docker dev smoke test
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>
2021-04-15 21:51:46 +00:00
Andrea Cirulli a34b8ce9a9 add is_running_on_jenkins helper function
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>
2021-04-13 18:52:13 +00:00
James Butters 16cea75a47 move to docker-compose exec
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>
2021-04-13 15:43:53 +00:00
Andrea Cirulli ec4b9c72c3 add outputlog to docker_dev_setup and prettify the output
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>
2021-04-12 19:57:48 +00:00
James Butters 931eda14a7 fix bundler sync to work with local canvas
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>
2021-04-02 16:10:55 +00:00
James Butters e8bf351850 fix bundler if statement
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>
2021-03-31 23:19:15 +00:00
James Butters 8464842a3f add bundler version check to docker_dev_update
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>
2021-03-31 19:29:42 +00:00
James Butters 23745ddda1 split migration out from initial_setup
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>
2021-03-29 20:40:56 +00:00
James Butters 6e11d6868c move functions to common.sh
move shared functions to common.sh. Move common.sh to
script/common/utils/common.sh

closes: DE-571
flag = none

Test Plan:
-running docker_dev_setup succeeds
-running docker_dev_update succeeds
-running rebase_canvas_and_plugins succeeds

Change-Id: I4d74369f9c88854d1bb4ac0b3b990f5045f24506
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261153
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>
2021-03-22 15:27:48 +00:00
James Butters 41849fec6c fix canvas_update for non-dockerized
flag = none

Test Plan:
- running docker_dev_update succeeds
- running canvas_update on non-docker succeeds


Change-Id: I2b20ae04315b4bfbd7a90f5a9331f0354065d239
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/261263
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>
2021-03-22 14:43:10 +00:00
Andrea Cirulli d1ccb225bf add telemetry to docker_dev_update
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>
2021-03-19 15:48:51 +00:00
James Butters 2b45e82021 abstract canvas build steps into separate script
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>
2021-03-17 20:19:41 +00:00