canvas-lms/build/new-jenkins
Cody Cutrer 1c15214a63 keep lockfiles in sync as part of `bundle` commands
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>
2023-05-16 18:39:21 +00:00
..
js use bind mounts for cache helper image copies 2022-09-26 11:51:46 +00:00
library always run migrations when switchman override is present 2023-03-23 13:52:52 +00:00
linters keep lockfiles in sync as part of `bundle` commands 2023-05-16 18:39:21 +00:00
package-translations package-translations update 2023-03-23 15:14:24 +00:00
pact convert contract tests to EKS-compatible syntax 2021-06-15 13:57:51 +00:00
consumer-smoke-test.sh cache migrations by md5sum 2020-10-08 16:39:18 +00:00
crystalball_map_smoke_test.rb add require statements 2023-01-12 18:46:09 +00:00
crystalball_merge_coverage.rb add require statements 2023-01-12 18:46:09 +00:00
dive.sh Spec: Add dive build 2020-03-26 14:52:06 +00:00
docker-build-helpers.sh build ARM64 image for post-merge 2023-03-15 14:07:49 +00:00
docker-build.sh add base-runner selected tag labels to each image 2023-04-05 18:25:37 +00:00
docker-compose-build-up.sh remove docker_processes from core rspec and selenium test runs 2021-05-12 19:47:12 +00:00
docker-compose-pull.sh updgrade Jenkins Chrome version 107 2022-12-06 02:28:57 +00:00
docker-compose-setup-databases.sh Remove auditor cassandra support 2023-04-03 15:40:22 +00:00
docker-with-flakey-network-protection.sh modify git push for new jenkins node 2022-02-22 04:19:43 +00:00
iterscores.lua introduce new algorithm for computing rspecq node count 2022-10-18 19:34:01 +00:00
js-changes.sh fix JS test impact analysis for plugins 2022-09-26 12:37:46 +00:00
locales-changes.sh run locales but -2 if only changes is in config/locales/ 2022-04-13 18:20:34 +00:00
migrate-md5sum.sh cache migrations by md5sum 2020-10-08 16:39:18 +00:00
record-webpack-sizes.sh optimize webpack linters build time 2022-04-27 16:07:10 +00:00
rspec-combine-coverage-results.py fix for running code coverage 2020-05-07 20:19:38 +00:00
rspec-coverage-report.sh change from using WORKSPACE to current directory for builds 2020-05-26 18:33:29 +00:00
rspec-flakey-spec-catcher-parallel.sh add RSPEC_PROCESSES to Flakey Spec Catcher 2021-05-12 00:18:44 +00:00
rspec-flakey-spec-catcher.sh remove docker_processes from core rspec and selenium test runs 2021-05-12 19:47:12 +00:00
rspec-with-retries.sh remove parallel_tests gem 2023-04-10 15:16:59 +00:00
rspecq-tests.sh run cyrstalball build silently 2022-01-13 16:35:50 +00:00
run-migrations.sh don’t perform redundant DB operations in Jenkins test runs 2022-06-01 17:42:18 +00:00
skipped_specs_manager.rb rubocop: Style/TernaryParentheses, Style/RedundantParentheses 2023-04-12 14:56:48 +00:00
spec-changes.sh add FSC only if spec changes 2020-08-04 13:42:45 +00:00
test-gems.sh remove docker_processes from core rspec and selenium test runs 2021-05-12 19:47:12 +00:00
wait-for-file.sh Wait for graphql.schema before schema check starts 2022-08-30 17:00:53 +00:00
wait-for-it setup postgres extensions on all test dbs 2020-04-27 18:25:57 +00:00
xbrowser-test.sh remove docker_processes from core rspec and selenium test runs 2021-05-12 19:47:12 +00:00