refs AE-554
flag=none
test plan:
- pact tests run and pass
Change-Id: I8b8d62b10a81d00ef3502462241239ba400cb8ac
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/340440
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
This allows the webpack cache to be invalidated if needed.
Change-Id: Ie60d1c387f899eb3a53010ebbca361889341c184
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/340082
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
In development its often useful to attach a debugger to the running
rails instance. This is a docker-compose override file that will switch
the web container to using puma directly instead of the default of
rails via passenger via nginx.
To use this file, add puma.override.yml after
docker-compose.override.yml in your COMPOSE_FILE environment variable
and rebuild your web container.
flag=none
Change-Id: I152ba49fa88db8d33f1223e8b809894a4a10775e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335727
QA-Review: Keith Garner <kgarner@instructure.com>
Product-Review: Keith Garner <kgarner@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
Build-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
This prevents the database from being access key-dependent.
refs AE-554
flag=none
test plan:
- build and specs still pass
Change-Id: Idc0c5e7949ea27bd56f787a937e83febf498a2f4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/338513
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Build-Review: James Butters <jbutters@instructure.com>
QA-Review: Isaac Moore <isaac.moore@instructure.com>
Product-Review: Isaac Moore <isaac.moore@instructure.com>
flag=none
test plan:
- Specs pass.
- Make sure you can run canvas using docker
with this new version of the bundler.
- If you are using inst-cli, you can do:
inst canvas clean
inst canvas setup
qa risk: low
Change-Id: I259119d6ec09332480f0e110d22fa233c3ac1b7e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/338012
Reviewed-by: James Butters <jbutters@instructure.com>
Build-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: Omar Soto-Fortuño <omar.soto@instructure.com>
I ended up needing to remove this with webpack -> rspack
Change-Id: I047c84b7355b89455f1df57a783dbcbfa5fd11a6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/337968
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
better for static analysis of the frontend
also helps gives visibility to what we need to move to
ui/boot/initializers/router.tsx
test plan:
- tests pass
flag=none
Change-Id: I8ff04a7449293abcb54379ce4d5a51fcbe312ae3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/335975
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Josh Wilson <josh.wilson@instructure.com>
Reviewed-by: Michael Hulse <michael.hulse@instructure.com>
QA-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Product-Review: Aaron Shafovaloff <ashafovaloff@instructure.com>
Build-Review: James Butters <jbutters@instructure.com>
closes LF-994
flag = none
Test plan:
- wait for the package-translations job to run
- make sure the resulting commit has complete translation sets for
vi, th, sv, and ru (these were the only locales with translations
in both s3 and transifex; other locales should not be affected as
they were only present in a single source)
Change-Id: Ia78c006fe30290256813938c7a87d2c7d9cdb116
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/332518
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Robin Kuss <rkuss@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
Product-Review: Jackson Howe <jackson.howe@instructure.com>
well, somewhat. it's vendored for now, bugfixes and improvements
have been going into that gem, and we'd like those fixes in
Canvas.
Change-Id: Ib4f30926acddb364779b9f91b1ee129ba6b17ff0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/327463
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
Change-Id: I799dc922a081745102d876189e4da56ed0a2533c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326546
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Build-Review: Isaac Moore <isaac.moore@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
also, don't set BUNDLER_VERSION env var in Docker, so that
bundler's auto-install-and-restart-with-the-correct-version
feature can work
Change-Id: I8e3722197fb3598b5c40679d997f19b3b3957ea8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/326580
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>
Build-Review: Cody Cutrer <cody@instructure.com>
Since the RCE can be and is consumed outside
of the Canvas monolith, ENV references pose a
problem because they don't work outside of Canvas.
closes LF-539
flag=none
qa risk: low
test plan:
-look at the past patchsets and you can see
it fails if you add ENV references in the RCE,
and that it doesn't fail ENV references in
the ui folder
Change-Id: Ic7a7c58550ffff22477bd2d8ea7759d0a8b4d5ac
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/323549
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Build-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Jake Oeding <jake.oeding@instructure.com>
Reviewed-by: Jackson Howe <jackson.howe@instructure.com>
QA-Review: Jackson Howe <jackson.howe@instructure.com>
refs AE-297
and also include binstubs in the path in docker
this will help ensure people are running the correct version of bundler
Change-Id: I68e7f6a43efd89ff257a9307aa4f6709acef05f8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/318776
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
Build-Review: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
closes AE-283
this eliminates script/sync_lockfiles.rb and integrates its
functionality directly into `bundle install`, `bundle check`, etc.
it also generalizes a few pieces so that the same approach is used
for all use cases:
* syncing versions between the main Gemfile and gems in gems/
* maintaining separate lockfiles for no plugins/including
private plugins
* maintaining separate lockfiles for multiple Rails versions
(crossed with the previous bullet)
The differences between them are just small variations on how strict
versions must match between lockfiles, and requiring pinning of
versions not in the default lockfile.
For full details, checks the docs on BundlerLockfileExtensions
This does change the strategy for filtering private plugin dependencies
out of the committed lockfile(s) - instead of filtering based on hash
of source, simply don't even include private plugin gems in the gemfile
when building the filtered lockfile (i.e. dynamic Gemfile, rather than
monkeypatching bundler to filter out -- semi-succesfully -- private
plugins from the Definition).
It also changes the "default" lockfile for Canvas that gets checked
in to be Gemfile.lock, so that other tools that are not
multi-lockfile aware can find it (such as rubocop, dependabot, and
others). This will be the lockfile corresponding to the current
default rails version for Canvas, and without private plugins.
Change-Id: I7ba398381974acbc4445f34fa3b788e8a07c5ce6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/317888
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>
Build-Review: Cody Cutrer <cody@instructure.com>
still need to ensure gem dependencies are consistent, but this should
prevent unexpected breakage during tests
Change-Id: I39420479fd3fe4f7e49a12a418eca033fcdc7564
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/314979
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>
Build-Review: Cody Cutrer <cody@instructure.com>
refs DE-1491
Test Plan
1. The new label appears on each produced image for a completely fresh build
2. The new label appears on each produced image for a build with ruby-runner cached
3. The new label appears on each produced image for a build with yarn-runner cached
4. The new label appears on each produced image for a build with webpack-builder cached
5. The new label appears on each produced image for a build with webpack-assets cached
[build-registry-path=jenkins/canvas-lms/de-1491/base-runner]
[change-merged]
Change-Id: I7aab0dc7af43127b1564cdac28aff198a28d5c08
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/315231
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
Also remove the engine experiment, because that never really went
anywhere for canvas and was just one more "different" thing
[fsc-max-nodes=15]
[fsc-timeout=45]
Change-Id: Ib990deb94bf5e25d587d554f64c535c9b96cce26
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/314469
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Isaac Moore <isaac.moore@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
Migration-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
The package-translations build would fail to commit the changes resulting
from `yarn wsrun installTranslations`. I believe this was caused by wsrun
starting multiple jobs in parallel and git would fail.
While I'm not 100% sure this completely fixes the issues we were having,
this makes it better.
refs MAT-1178
flag=none
test plan: n/a
Change-Id: I333a1de8fdf6dc97e69fa0072d343a2ac2d7b553
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/314059
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
QA-Review: Ed Schiebel <eschiebel@instructure.com>
Product-Review: Ed Schiebel <eschiebel@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
When building the canvas web container, references to the arg RUBY
are not set resulting in unexpected file paths. For example
GEM_HOME only creates /home/docker/.gem/ when we expected it to
create /hom/docker/.gem/2.7 by default. We need to add another
reference to the ARG RUBY after the FROM.
According to Docker: An ARG declared before a FROM is outside of a
build stage, so it can’t be used in any instruction after a FROM.
To use the default value of an ARG declared before the first FROM
use an ARG instruction without a value inside of a build stage
https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
Test Plan:
-run `docker compose build web`
-bash into the web container
-echo $GEM_HOME
-path is set to /home/docker/.gem/2.7
-run `docker compose build --build-arg RUBY=3.1 web`
-bash into the web container
-echo $GEM_HOME
-path is set to /home/docker/.gem/3.1
Change-Id: I4856a8ffff3debe9deac3f3fb511d13735f41fea
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/314062
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>
refs DE-1359
The right way to force migrations to re-run is to use the flags: change-merged and build-registry-path. This is a holdover from when those flags didn’t exist.
Change-Id: I0f50c2c86bb9af8e67afb1c795b3c23674e97dc6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/313266
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Build-Review: Aaron Ogata <aogata@instructure.com>