Commit Graph

574 Commits

Author SHA1 Message Date
Aaron Ogata 56403e5f63 don’t try to add reviewers if gerrit change id doesn’t exist
Change-Id: I4fdd71d0a5bb3c7dd3adcb558d0cf3bf2211d1b4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/287312
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2022-03-17 15:51:25 +00:00
Brian Watson 2f2a27d91b Upgrade to Selenium 4
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>
2022-03-09 15:28:31 +00:00
Brian Watson 3010b75800 Enable junit reporting for crystalball-map
flag=none

Test-plan:
- run crystalball map, junit `Test Report` item should appear
- in crystalball_map job, the crystalball collator in the final
  stage should report >= 40,000 specs

Change-Id: Id4f12671f1bc136c19d8d2f8e4fdcef844e1690c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/286485
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-03-08 21:22:29 +00:00
Aaron Ogata a7f3197352 support pinning commonly modified gems to specific versions
Change-Id: I1bb63c1c1af144678236cd1a7ea63d1e10c666a4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/286541
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2022-03-08 17:33:30 +00:00
Bobby Buten e91a88762d re-enable canvas javascript coverage report
refs DE-989
flag=none

TEST PLAN:
  confirm https://code-coverage.inseng.net/ is updated with new report

Change-Id: I596ce0df04c920b096a875004bd765979dec344b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285861
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Bobby Buten <bobby.buten@instructure.com>
Product-Review: Bobby Buten <bobby.buten@instructure.com>
2022-02-28 15:36:57 +00:00
Brian Watson 16eb46a203 Filter main-axe to only run selenium tests
flag=none
Test-plan:
- no unit tests should be run

Change-Id: Iaa5bc22a7cf36504a6a27b85f42ce6c673c24e94
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285877
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-02-24 16:36:47 +00:00
James Butters 93ae530510 modify git push for new jenkins node
[canvas-builds-refspec=213b7a85846bd46b9eac3cbbe93eab9fd3b66915]

Change-Id: I009ec09dc9443779e177f7e7d8b7614ad6e6d34e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285593
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2022-02-22 04:19:43 +00:00
Aaron Ogata d3ba157e43 remove translations/_core_en.js in production try 2
refs FOO-2720
flag = none

Short version: the "_core_en.js" file is no longer loaded in production
as its contents have been merged (there) with the super "core.js" file,
which is targeted for removal later in this series.

Change-Id: I05eb76a2f1cac12b4ab953bad0ca5a49b6ffd37b

---

The problem as I understand it: there are certain phrases that are
marked as "core" because they are used by shared/logic code like
DateTime formatters and are pre-defined in config/locales.yml. These
phrases were being supplied in two distinct files:

- _core_en.js, which includes only the phrases for the "en" language
- _core.js, which includes the phrases for the rest of the supported
  locales

_core_en was split because it was deemed necessary to be loaded always,
regardless of the active locale, and that is - as it appears to me, at
least - because some code attempts to look up those phrases at the
time their modules are evaluated. This patch corrects those modules to
defer their lookups until the point where the translations are used,
and when the translations have become available -- just like the rest of
the codebase does.

But if this is true, this begs the question, how come those modules
weren't presenting bugs by using translations for "en" and not for the
target locale? My thinking is that it is only coincidental that they
weren't: should _any_ module that uses I18n be evaluated _before_ any of
those modules, the Webpack plugin will have already loaded the "core"
file, which includes the translations for those phrases in the target
locale. _core_en may not have been loaded by then, but that doesn't
matter because the resolver is gonna look for what's in _core first when
it's available, and it is.

---

What happens in this patch is a slight change to prepare for the full
removal of both _core and _core_en: _core_en is now loaded only in
builds that don't load actual translations because we need the default
values that that file provides. The alternative would've been to go to
each call-site that looks up the phrases provided in _core_en and have
them supply default values, but it's untenable at this point.

This is the list of call-sites and the phrases they look up:

    ui/features/calendar/jquery/index.js: time.formats.tiny_on_the_hour
    ui/features/quiz_statistics/util/parse_number.js: number.format.delimiter
    ui/features/quiz_statistics/util/parse_number.js: number.format.separator
    ui/shared/day-substitution/backbone/views/DaySubstitutionView.coffee: date.day_names
    ui/shared/syllabus/jquery/calendar_move.js: date.month_names
    ui/shared/datetime/jquery/DatetimeField.js: date.formats.medium
    ui/shared/datetime/jquery/DatetimeField.js: date.abbr_month_names
    ui/shared/datetime/jquery/DatetimeField.js: date.day_names
    ui/shared/datetime/jquery/DatetimeField.js: date.abbr_day_names
    ui/shared/datetime/jquery/DatetimeField.js: date.datepicker.column_headings
    ui/shared/datetime/react/components/render-datepicker-time.js: datepicker.titles.hour
    ui/shared/datetime/react/components/render-datepicker-time.js: datepicker.titles.minute
    ui/shared/datetime/react/components/render-datepicker-time.js: datepicker.titles.am_pm
    ui/shared/handlebars-helpers/dateSelect.js: date.order
    ui/shared/handlebars-helpers/dateSelect.js: date.*
    ui/shared/i18n/i18nObj.js: number.format
    ui/shared/i18n/numberHelper.js: number.format.delimiter
    ui/shared/i18n/numberHelper.js: number.format.separator

dateSelect.js is the gnarly one because it seems to be passing through
everything under date.* to God knows who.

The list above was generated with a command similar to this:

    grep -rnP "I18n.(t|lookup)\(['\"](date|datetime|number|support|time)\S" ui

---

~ test plan ~
  ~~~~ ~~~~

- you can still activate a different locale and use something like the
  datepicker to normal effect

[change-merged]
[build-registry-path=jenkins/canvas-lms/foo-2720-01]

Change-Id: Ifd5d2d888edc9b89a9930824f2c55fd9c275b03f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/284102
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2022-02-18 00:08:38 +00:00
Jacob Burroughs 888baaf6e4 Allow using rails 6.1 in jenkins
Change-Id: I789009a956751510825092c084db128aaf085ec4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/285337
Product-Review: Charley Kline <ckline@instructure.com>
Product-Review: Jacob Burroughs <jburroughs@instructure.com>
Tested-by: Jacob Burroughs <jburroughs@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
QA-Review: Jacob Burroughs <jburroughs@instructure.com>
2022-02-16 21:49:00 +00:00
Brian Watson b9cbe6e772 Enable all rspec tests to generate crystalball map coverage
flag=none

Test-plan:
- unit tests have entries in the crystalball map

Change-Id: I9a05fd5c050f0b4142dfc19fb3b960fdb00f3584
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283875
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-02-01 17:23:26 +00:00
Brian Watson bf9d9fc0c0 Allow crystalball merge coverage to continue if a map is invalid
flag=none
Test-plan:
- crystalball map works

Change-Id: I083a0c9033bec1dd099a422d82a686f6168bddf2
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283888
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-01-28 22:33:26 +00:00
Brian Watson d13aa69769 Add ability to retrieve versioned crystalball map
flag=none
Test-plan:
- run a patchset with different value set for crystalball map
- previous timestamp should appear in #crystalball-noisy

Change-Id: I206e2c62bcfc00f0f8bc8c8ad0b1262d28caab4f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283794
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2022-01-28 18:10:20 +00:00
Brian Watson 2c3ce9e899 Don't use colon in crystalball_map version
Change-Id: I4c2ad851e15b8c5bda80bbcdaa22a3481a030b73
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283463
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Brian Watson <bwatson@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-01-24 21:40:32 +00:00
Brian Watson 09ae8dabbf Add test count to crystalball map
Change-Id: I56cabde3db6a169fb3bb198a944ec46d7f7940aa
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283445
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-01-24 20:28:44 +00:00
James Butters 6b33307857 fix coverage build, add redisUrl
Change-Id: I1d8305402c73e677a66bae6bcc7343302a98510b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283137
Reviewed-by: Bobby Buten <bobby.buten@instructure.com>
Product-Review: Bobby Buten <bobby.buten@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
2022-01-19 20:41:51 +00:00
James Butters 712e8938c5 fix qti_migration_tool setup in lintersStage.groovy
Change-Id: I4893b0ff11ae495fef0548877b7517242d37640d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283078
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>
2022-01-19 15:19:20 +00:00
Aaron Ogata 9e960354ee remove @tmp folders for qti_migration_tool path
Change-Id: Ie1af60e9af4f2f8e5db9f6929f9b1d2a69b5f84c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283065
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2022-01-18 22:44:15 +00:00
Aaron Ogata 4b4898df7f fix qti_migration_tool build
Change-Id: Ia2d06a7d28f7937eb5a677c5acba098c655ad17c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/283060
Reviewed-by: Jeremy Stanley <jeremy@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2022-01-18 22:08:39 +00:00
Ahmad Amireh 4d0de671d3 ensure workspace pkgs aren't fetched from registry
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>
2022-01-18 19:15:21 +00:00
Brian Watson 416ce062f1 Add timestamp to crystalball map merge
flag=none

Test-plan:
- tests should still use crystalball map correctly
- s3 map should have timestamp post merge

Change-Id: I563bbd32499b7d9424e1563c44f27c91e9357bb4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282795
Reviewed-by: Martin Yosifov <martin.yosifov@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-01-13 21:31:36 +00:00
James Butters ee77da50ca run cyrstalball build silently
run crystalball build silently, in parallel to regular
builds.

flag = none

Test Plan:
-Jenkins passes
-proofs-of-concept/test-queue build runs same tests
-with ruby file change, proofs-of-concept/test-queue only
 runs crystalball predictions for selenium
 -regular test-queue still runs all tests

Change-Id: I243c096c9ac3fb2907d7b67272610663284aebc6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282684
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Brian Watson <bwatson@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2022-01-13 16:35:50 +00:00
Brian Watson 4a49800443 Add istanbul-instrumenter-loader for crystalball map
Note: Ensure that istanbul is only enabled for crystalball before
this is merged

closes OUT-4918
flag=none

Test-plan:
- crystalball map should include JS files
- ensure that CRYSTALBALL_MAP isn't set to 1 in standard pre-merge

Change-Id: I5ae2f32177640e3caeb77871918644890eb4ae30
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/280813
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-01-12 18:57:00 +00:00
James Butters 9e46664eaf Revert "Revert "rspecq/rspec separate build""
This reverts commit 7dd287adea.

Reason for revert: try again

Change-Id: Ie0eededa8465a7fb79bbd221c777646ab2640fa7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282036
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2022-01-12 18:21:47 +00:00
Ahmad Amireh e61659ffdf refactor RevManifest to simplify the CDN interface
refs FOO-2520
flag = none

[pin-commit-multiple_root_accounts=2a9bf89895f38df6bf8f54828af66aced594abf0]

revisit the API for resolving asset names to their (real)path on disk,
because adding to the existing logic to support an alternative bundler
made things hard to understand.

This patch brings a new simplified interface Canvas::Cdn::Registry to
query assets and resolve their location.

- Registry#include?(path) tells whether a realpath points to a static
  asset
- Registry#statics_available? tells whether static assets are available
- Registry#scripts_available? tells whether JS assets are available
- Registry#scripts_for(bundle) provides the realpaths to all the JS
  files in the specified bundle
- Registry#url_for(name) provides the realpath to the static asset

The Registry is a good place to house the BrandableCSS resolving logic
in the future for even more consistency. It can also support an
alternative bundler internally without leaking. Eventually, it would be
nice to have it as a gem.

CHANGES
-------

- helper "font_url_for()" has been removed as it was a duplicate of
  existing logic; instead use "font_path(...)" to achieve the correct
  result. As a result, BrandableCSS is no longer querying Gulp's
  manifest.
- preloaded fonts are now aware of the asset host and work for CDN
- InfoController uses the new Registry API to tell whether Gulp and
  Webpack have produced their assets successfully
- ApplicationHelper no longer re-computes the base URL for JavaScripts,
  now only the Registry is concerned with that
- ?optimized_js query parameter is no longer supported as it has no real
  benefit now that we have access to sourcemaps on production
- ENV['USE_OPTIMIZED_JS'] is now more consistent as there is a single
  source of truth for it. The Registry can be instantiated with
  {environment: "production"} to point to the optimized version of the
  scripts.
- "css:compile" task no longer writes BrandConfig records to the DB,
  that is now done as part of the "compile_assets" task, which you can
  opt out of doing by setting COMPILE_ASSETS_BRAND_CONFIGS=0

TEST PLAN
---- ----

- load your dashboard and verify all the assets are loaded correctly
- set up a CDN, restart your Rails server and reload the dashboard
  - verify all assets are loaded from the CDN
  - verify the Lato fonts are pre-loaded from the CDN
- (optional) add custom JS to a sub-account and visit it
  - verify the custom JS is loaded and evaluated *after* Canvas's main
    javascript bundles

Change-Id: I8198de747cdd5892d6a831cb6c61ba0ef9afa789
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276537
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Charley Kline <ckline@instructure.com>
Product-Review: Charley Kline <ckline@instructure.com>
2022-01-06 20:20:40 +00:00
James Butters 7dd287adea Revert "rspecq/rspec separate build"
This reverts commit 276eb49f8e.

Reason for revert: Something in here is failing deploys

Change-Id: I615a90e6a4edf743ba47a2673bc14483ad141b3d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282032
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: James Butters <jbutters@instructure.com>
2022-01-06 17:47:50 +00:00
James Butters 276eb49f8e rspecq/rspec separate build
run rspecq/rspec tests in separate sub-build.

flag = none
refs: DE-929

Test Plan:
-Jenkins passes
  -test count is consistent

Change-Id: Ia62730c32d1793d591555c0fd034538254efffc3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282016
Reviewed-by: Aaron Ogata <aogata@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-01-06 16:45:56 +00:00
Brian Watson 7e9d804dd2 Repair canvas coverage
closes OUT-4926
flag=none

Test-plan:
- coverage should be complete
- coverage in latest jenkins build should match
  what's visible in code-coverage.inseng.net

Change-Id: Ia64778433a698e7f2eb8bbd2a5e9621662eedb03
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281119
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2022-01-05 17:55:26 +00:00
Aaron Ogata 0c5f8d1717 move to new redis instance
Change-Id: I235ad586045e567f47344a7e05e4d70ff400fa11
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/282108
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2022-01-04 18:33:44 +00:00
Bobby Buten 8be4bb35c3 purge pulsar from canvas
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>
2022-01-03 20:37:22 +00:00
Aaron Ogata afc8ca7c35 remove dead variables
Change-Id: I61f3d6b65080334d9232f1a4421411b00ce6c34c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281340
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: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-12-15 20:43:48 +00:00
Aaron Ogata 30123eab71 bump log4j
Change-Id: I5eeb5ef29980520c8f6129192072296f26bb3050
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281338
Reviewed-by: Ben Rinaca <brinaca@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-12-15 20:21:17 +00:00
Aaron Ogata 96d40fd6a3 clarify dockerfile linters message
Change-Id: Ib2c5627017bdcbc5e75890e7287128a7b628f38d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/281102
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
2021-12-13 21:48:09 +00:00
Jon Scheiding ef7ed59301 Install and commit translations in packages
(specifically canvas-rce)

closes MAT-393
flag=none

Test Plan
- Check out commit 111b6aa
  (this commit has translations which are not synced to canvas-rce)
- Manually run `yarn wsrun --exclude-missing installTranslations`
- Manually run `yarn wsrun --exclude-missing commitTranslations`
- Observe that a patchset was created in Gerrit

Make sure to abandon the patchset

Change-Id: I33654c064ff8a22b5d78588d9946e94bb5460d18
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/280766
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Jon Scheiding <jon.scheiding@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
2021-12-09 22:10:37 +00:00
Andrea Cirulli 62131298b4 change groovy linter to fail on warning and not info
Change-Id: I9348bfea30d41386619f9c95405326073f7a74e8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/280645
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-12-08 20:43:42 +00:00
James Butters fca3312001 remove remaining rspecq conditionals
flag = none

Test Plan:
-Jenkins passes
-Crystalball map generation build passes

Change-Id: If2190816b0ec31066837430b826369891ceac783
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/280297
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Brian Watson <bwatson@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-12-08 16:33:38 +00:00
James Butters 27214d2f51 update chrome version and cleanup SELENIUM_VERSION
[ignore-stage-results=Flakey Spec Catcher]

update chrome version to run tests against. A few small
fixes to work with new chromedriver.

closes: DE-930

Test Plan:
-Jenkins passes
-FSC build passes
-Run test local docker dev setup
-Run test local dev setup

Change-Id: Ie2d5dd918f85cbcc01d0f8b572efa8aab71c1803
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279959
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-12-07 14:18:47 +00:00
Brian Watson 37b2bf1bd5 Push crystalball map to s3 in crystalball-map job
closes OUT-4895
flag=none

Test-plan:
- after job builds, new map should be visible in instructure-canvas-ci
  bucket

Change-Id: I3fa98f1da7e4b75f6b24dedff5a9cb35c3e08eb6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/280200
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-12-06 16:52:41 +00:00
Brian Watson 96fbbf87c9 Revert "Revert "Crystalball post-merge map generation""
Also moves config/initializer/crystalball.rb to spec/support
to prevent it from running in prod

This reverts commit 9a9c68be6e.

Test-plan:
- passes cd to edge without failure
- generates map successfully in PoC build

Change-Id: I67c02ebaea06e11b3a3721aa49217da16e75bd32
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279848
Reviewed-by: Michael Hargiss <mhargiss@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-12-01 17:35:52 +00:00
Aaron Ogata 16bc04f7d9 publish stage timings along with summary report
refs DE-372

[canvas-builds-refspec=6d1e3d31d1eb514c3f2a11c37b30d68f06739eb9]

Change-Id: I2a4bdf066d204b09366ad02a89f9cc56683efc69
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279834
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-12-01 16:31:22 +00:00
Aaron Ogata 62f4da6dca remove rspecq disabled fallback
Change-Id: I6fbb14864226e9f311dcfddae58c8e63e556b722
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279854
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-12-01 15:40:09 +00:00
Brian Watson 9a9c68be6e Revert "Crystalball post-merge map generation"
This reverts commit bd847c2d14.

Reason for revert: breaking cd

Change-Id: I85ed1dc69045d2cd984778da12c2e0b402b842ad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279637
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-11-30 17:36:13 +00:00
Brian Watson bd847c2d14 Crystalball post-merge map generation
flag=none

Test-plan:
- #crystalball-noisy should link to the latest build AND the
  latest map should be linked (stored as a build artifact)
- job should run nightly
- nightly alerts should promopt #crystalball-noisy posts
  (but not gerrit manual triggers)

Change-Id: Ibbd45dfd8a9b3ed8f4c662b322214cbbc3dc99b4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277205
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Michael Hargiss <mhargiss@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-11-30 16:18:07 +00:00
Aaron Ogata 65950dbc71 split external package installation from gem installation
refs DE-545

When apt-get tries to pull a package from a server that is down or undergoing maintenance, builds that modify Gemfile can fail due to not being able to pull packages. By splitting the package installation into its own layer, external packages no longer need to be reinstalled when gems are updated.

Test Plan
1. Cache builds correctly from scratch, uploads all relevant images.
2. Cache is correctly reused when no gems are updated
3. Base cache image is reused when gems are updated, and all other images are rebuilt
4. Pre-merge build passes and uses cache as appropriate
5. Updating Dockerfile.jenkins re-builds base image

[build-registry-path=jenkins/canvas-lms/de-545-1]
[change-merged]

Change-Id: Ifd76064892817abb80dd0daebe8c2189c0338d78
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/279697
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-11-29 20:57:42 +00:00
Ahmad Amireh 242dcd18ce publish source translations to s3
refs FOO-2371
flag = none

test plan: jenkins does what the title says (on post-merge)

Change-Id: Id17a194c1c96ade4d21cea0a6ed97205a8eb2754
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275751
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: August Thornton <august@instructure.com>
QA-Review: Ahmad Amireh <ahmad@instructure.com>
Product-Review: Ahmad Amireh <ahmad@instructure.com>
2021-11-17 22:36:41 +00:00
James Butters 2adbe5e8bb junit skipMarkingBuildUnstable true
Change-Id: I58ae742cd2046639294d7fbc3e43872dbacbbf0f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/278150
Reviewed-by: Aaron Ogata <aogata@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>
2021-11-12 16:18:18 +00:00
James Butters 7ca08b9885 bump rspecq version after recent rspecq merge
add back only archive test results if axe build

Change-Id: I9ae9bd1dd57d3ea6bcb1cc941c7a942d94d6f5a4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277946
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>
2021-11-11 14:36:51 +00:00
James Butters 0b67e1d47b report initial spec failure
only report the initial spec run, not the rerun.

Change-Id: I7a52f5b90d92c8dac30da8578a6f209a0e8de0b6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277873
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-11-11 02:30:22 +00:00
James Butters a93d992497 don't alert slack if FlowInterruptedException
do not alert slack if the build aborted due to new patchset
or user aborted.

Change-Id: I3074a23c7979254ee5798b6edb9bde31c07b675c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/277626
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-11-10 15:11:28 +00:00
James Butters 803625573a alert canvas_builds-noisy on node failure
alert slack channel canvas_builds-noisy on node
failure and do not fail build for rspecq node
failure.

flag = none

Test Plan:
-Jenkins passes normally
-When queue is depleted and node acquired late
  -Node will release before any steps are ran
-An RSpecQ node throws an exception during steps
 such as can't pull image.
  -The stage will get marked as UNSTABLE, following
   stages will get skipped.
  -Overall build result not affected by this failing
   node.
-If tearDownNode stage fails, overall build will be affected.
-RSpecQ Reporter failures do affect overall build result


Change-Id: Iccbb66cad0a988a26bf17c8332a20d8d7d55ee5b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276927
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-11-04 16:06:41 +00:00
James Butters d9213a8e41 improve queue_empty logic
sometimes the queueUnprocessed will happen so fast rspecq
hasn't had a chance to populate so now we'll also check
queueProcessed to see if any tests have been ran and if
there are any more.

Test Plan:
-Normal Jenkins build passes
-Add a sleep to make node wait for empty queue
  -node will release

Change-Id: I2f18b6dd4011c2a331e675ff02672cc8bf95a74e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276872
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-10-27 15:51:30 +00:00
James Butters 0df511b6a7 use docker-with-flakey-network-protection
Change-Id: I3428fe1de818813aad448a631e16fb5d08d30475
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276855
Reviewed-by: Aaron Ogata <aogata@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-10-26 20:58:44 +00:00
James Butters 22cebefa58 rspecq on or off, no percentage
Change-Id: Idaecd8bcb1542d2e3624b4d8c7e8420bf6cdad79
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276818
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-10-26 17:19:15 +00:00
James Butters 0e69a91cf3 do not run node if queue is empty
[use-rspecq]

Test Plan:
-Jenkins passes both with and without rspecq
-add sleep to one node, wait for queue to empty
  -node will not run any stages since queue is empty
-add sleep to one node, wait but still have tests in queue
  -node will still run stages and tests

Change-Id: Iace45f456c19284c6a338f5537a367917fd4f9c0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275325
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-10-25 20:17:59 +00:00
Brian Watson 8a6e5e5e3e Upgrade FSC to allow list-child-specs option
closes OUT-4802
flag=none

Test-plan:
- test with a custom_reports PS referencing this
- see comments for expectations of FSC re-runs, compare against
  actual

Change-Id: I94ead7b61e37512231b558b16b57a8bfb2cff4c8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276101
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-10-18 20:35:42 +00:00
Weston Dransfield 884495090a Fix string interpolation in some builds
Refs MAT-241
flag-none

Test Plan:
Check that command now interpolate SSH_USERNAME
in the package-translations build

Change-Id: I2268ebb04da58d1d02eeda7438c5349bbc1a7f09
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/276083
Reviewed-by: Ahmad Amireh <ahmad@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Weston Dransfield <wdransfield@instructure.com>
2021-10-15 18:32:44 +00:00
Brian Watson 45d068547a Revert "Upgrade FSC to allow list-child-specs option"
This reverts commit cd45dc7416.

Reason for revert: need to fix gem specs in FSC

Change-Id: I8e0d9bcc0fedeb50b5b876fe158414dbad8858b8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275843
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-10-15 18:26:40 +00:00
Brian Watson cd45dc7416 Upgrade FSC to allow list-child-specs option
closes OUT-4802
flag=none

Test-plan:
- in PS1 builds,
  - examine changed specs and match it up with FSC queued up tests
  - in Jenkinsfile.selenium.flakey_spec_catcher, examine output, the new
    "raw result from catcher" and "raw result from splitter" should output
    similar lists
  - examine any differences and whether they are noteworthy or not
- in PS2 builds,
  - verify that FSC sub-build still functions after removing splitter

Change-Id: Icae697f1cedca8ab9a775a1f394891d4ca2007a3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275765
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-10-14 21:08:32 +00:00
James Butters d3f90b67a5 Move threading to bash script
[use-rspecq]

threading in the groovy script causes each process to act as a stage
and severely slows down each step. Move the threading into a bash
script similar to how rspec/selenium are currently ran.

flag = none

Test Plan:
-Jenkins Passes
-Step timings are faster and each process is not separate stage

Change-Id: I520c5c6ceecb717d64eee75e02913cf8ebfede00
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275903
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-10-13 20:47:22 +00:00
James Butters 0d1cd8daa6 fix build summary page to work with rspecQ
fixes: DE-878

Change-Id: I1012afec3f25e2ce26bb10505286c345b3d37f47
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274685
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>
2021-10-06 17:30:51 +00:00
Ethan Vizitei eab0f468e0 reset message bus settings to avoid state pollution from specs
refs FOO-2423
flag=none

TEST PLAN:
  1) run pulsar specs lots of times with many seeds
  2) they don't fail.

Change-Id: Ide7fbaebee5ddac37bf2db03d8699f32d1b57d56
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275315
Reviewed-by: Rob Orton <rob@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-10-06 17:13:21 +00:00
James Butters bbfbbf3f1f default rspec_processes in jenkinsfile
flag = none

Change-Id: I7625b082367b9de6b977e31d93fbe6d738949677
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275164
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-10-04 23:20:55 +00:00
James Butters 6812a7cb78 only set RSPECQ_REDIS_URL if using RSpecQ
[use-rspecq]

flag = none

Change-Id: I2e2a8ed8c878c0da4ac04f62b321ee740410fac9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/275093
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-10-04 14:35:27 +00:00
Kyle Rosenbaum 17d512c664 cleanup env variable interpolation
[use-rspecq]

Change-Id: I6eb610e9dda006c2acb5f394dc99777e7bd4331e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274578
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-09-29 21:00:12 +00:00
James Butters 070d7883c3 default rspecq password if not found
Change-Id: Ibd0139749979da87a56d09461459bac689ba7b49
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274532
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
2021-09-27 18:15:27 +00:00
Cody Cutrer b68d11de70 rubocop: go back to a single .rubocop.yml
it was just too confusing on which one an editor is using, double comments
in jenkins, etc.

this is accomplished by several things:
 * required cops are just marked as severe, instead of using a separate
   config for them, and failing if anything shows up from that config
 * get rid of all the logic to only include certain directories for
   certain cops. turns out it's not _that_ ominous to correct errors
   across the entire repository before marking a cop as required.
 * but still auto-generate config to turn _off_ autocorrect for
   non-severe cops. this is important because auto-correct must run
   for entire files, and we don't want it auto-correcting optional
   things that you didn't touch.
 * update gergich to get more details from the parsed comments.
   this plus the prior point means we _don't_ have to have heavy mode when
   in autocorrecting, but we still display out-of-context lines that were
   autocorrected

this also makes it so we can use per-dir .rubocop.yml files again, so
take some of the exceptions out of the root and put them in their own
directory

Change-Id: Ie936d1a9920b68910acd250ba817c7b4a670b958
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274394
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Simon Williams <simon@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-09-27 17:21:02 +00:00
Kyle Rosenbaum 853637feda fix rspecq_redis_password warning in Jenkins
[use-rspecq]

Change-Id: I3d9e21acfc2252e5484807e3a65746f4985a55ac
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274212
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-09-27 15:28:36 +00:00
Cody Cutrer bac7328a6e rubocop: run enforced config in heavy mode on jenkins
Change-Id: I42c9a8e6ab8cdd303c35e0d8d9756c783a653c69
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/274038
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-09-21 20:41:02 +00:00
Cody Cutrer e9d63396ff rubocop: split configuration
* remove spurious .rubocop.yml override files
 * split the configuration into an enforced and optional
 * run both configurations in jenkins (may result in some duplicate
   comments at different levels)
 * auto-correct the enforced configuration in the pre-commit hook
 * fix comments for Gemfile.d and the root dir; enforced configuration
   is only applied to that directory for now

Change-Id: I8da21073d74e19138b1b580d66c7aae6465348d4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273898
Reviewed-by: Simon Williams <simon@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-09-21 16:02:22 +00:00
James Butters 1233a0b886 move RSpecQ node count, file split, and requeues to canvas-builds config
[canvas-builds-refspec=467ec8d3c67450c44b02312c557233bb9b97a64c]

flag = none
refs: DE-849

Test Plan:
- Jenkins passes with corresponding canvas-builds sha

Change-Id: I3256d79173e9e64bdea952837e97996eb33fa87a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273554
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>
2021-09-16 18:41:43 +00:00
Kyle Rosenbaum 2a7f48ad61 set RSPECQ_ENABLED=1 when using use-rspecq commit flag; refs DE-822
test plan:
-set use-rspecq commit
-verify env var RSPECQ_ENABLED=1

Change-Id: I923cd7abc67535ffd5d38d09e7492320c27c760a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273712
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-09-16 17:19:14 +00:00
James Butters e33386240c move rspec, selenium, and rspecq process count to canvas-builds
[canvas-builds-refspec=2450c492e6342da15bdbabbe79bf6a21edc987df]

Test Plan:
- Jenkins passes with the corresponding canvas-builds commit
- Jenkins passes with canvas-builds commit and rspecQ

Change-Id: I45374a43a58b4240d862b2afb9e3cea9f67efcae
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273441
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-09-15 15:29:41 +00:00
James Butters 3de24c2244 update-timings for RSpecQ on change-merged builds
each post-merge build will run update-timings to keep our
timings current. Also set file split threshold to high number
so we get accurate timings per file.

[use-rspecq]

Test Plan:
- Jenkins passes without rspecq
- Jenkins passes with rspecq
  - pre-merge:
    - RSPECQ_FILE_SPLIT_THRESHOLD equals 150
    - RSPECQ_UPDATE_TIMINGS equals 0
  - post-merge:
    - RSPECQ_FILE_SPLIT_THRESHOLD equals 999
    - RSPECQ_UPDATE_TIMINGS equals 1

Change-Id: I7c5e57fa6576c8b0cd1d724ae0b6958ceeb2707b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273267
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-09-10 19:16:27 +00:00
Kyle Rosenbaum 3a3ececdfc add ability to run rspecq A/B testing; refs DE-822
[pin-commit-multiple_root_accounts=b29762c8bf01c2ffd52494f7e61df26aab6af921]

this adds the ability to run rspecq based on percentage of
times executed. this defaults to 10% and can be modified using
the env variable RSPECQ_EXPERIMENT_PERCENTAGE

test plan:
-in approximately 10 builds, rspecq executes at least once.

Change-Id: I7b6709c28b2f0344dfa253cb006ad779d673ccdc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273048
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2021-09-10 18:48:15 +00:00
James Butters 27e6cc245b spec: skip certain flakey specs if RSpecQ
[pin-commit-multiple_root_accounts=eeb2c3571469a46b5bec97cd789ae5f86c0cd241]

Test Plan:
- Jenkins passes normal build
  - tests are not skipped specific to this gerrit
- Jenkins passes RSpecQ build
  - tests are skipped

Change-Id: Ibbec7b21f601fe242dd683e72cd3721d8a8a9eb7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/273134
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-09-09 19:08:52 +00:00
Kyle Rosenbaum d310b75f47 add RspecQ under feature flag; refs DE-803
RspecQ can now be used to run tests using the
'use-rspecq' commit message feature flag

test plan:
- build runs as normal without use-rspecq enabled
- enabling use-rspecq commit flag runs tests using rspecq,
no tests run via old rspec/slenium groups
- test numbers match between differing builds
- build artifacts are created with or without feature flag
- build summary report works with or without feature
flag

Change-Id: Ibaf32177a8ec28a89278eaa4277bd7a752cbfc58
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/272130
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2021-09-01 20:26:52 +00:00
Cody Cutrer d75dd18a3a don't fail jenkins if there is a rubocop offense
gergich will process it and -1 it instead

Change-Id: I554ee1e63586bf27238b3cf0fc7fb70f1d2fe2c7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/272252
Tested-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-08-25 22:21:20 +00:00
Cody Cutrer 3587f79b14 separate rubocop gems into a dedicated gemfile fragment
so that we can reference only that fragment from our binstub
(which is de-springified), making it run significantly faster

Change-Id: I4f602e6c4d1feecf74eccd66e610781c76756ffc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/271957
Tested-by: Cody Cutrer <cody@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Cody Cutrer <cody@instructure.com>
Product-Review: Cody Cutrer <cody@instructure.com>
2021-08-25 16:24:44 +00:00
Ryan Norton 7e87dd9242 add detail to feature flag linter
this adds some details around who and what is changing when
a user modifies a feature flag

flag=none

Change-Id: I36f6107aa1a0509243c2b169d017cd037451f51a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/271559
Tested-by: James Butters <jbutters@instructure.com>
QA-Review: Ryan Norton <rnorton@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
2021-08-17 16:25:16 +00:00
Ethan Vizitei dde25f0ffb async pulsar message producer
refs FOO-2198
flag=none

update AUA log compaction specs
to allow threaded queue to drain

TEST PLAN:
  1) be sending messages over pulsar in AUA
  2) cause some timeouts somehow
  3) pulsar messages back up in memory
     but canvas requests don't slow down.

Change-Id: I311f9d30699d6d07a58a80065a0d939472a2178e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/269906
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-07-26 17:50:08 +00:00
Aaron Ogata f87f9b72e7 report feature flag changes for approval
refs DE-777

Change-Id: I4bfa74ec75894eb93660e2e8ef0e1d75ec51d927
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/269865
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Product-Review: Ryan Norton <rnorton@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
2021-07-26 13:40:27 +00:00
Kyle Rosenbaum 3ec1d45704 fix jenkins dev branch builds
we had a typo in call function

test plan:
- dev builds rebase successfully

Change-Id: I81c1334f05e2f6083d5e1d83147187877a547357
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/268469
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-07-13 23:12:22 +00:00
Andrea Cirulli 8c75975b9d update cache version for docker and migrations
Since we are switching the main build to ruby 2.7 from 2.6
we want to rebuild the docker images and the migrations.
In order to do that we need to update the CACHE_VERSION var.

refs DE-745

test-plan:
- Jenkins build passes

Change-Id: Ia910603d14d7e9a5eacca7ead79a3e64ac822def
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/268795
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-07-12 17:37:30 +00:00
Kyle Rosenbaum e2eb4fe25a remove calls to withStarlordDockerLogin
refs DE-719

withStarlordDockerLogin was needed for EKS, but with EC2
no docker login is needed.

test plan:
  - EC2 builds continue to work as expected

Change-Id: Icbd3f28bf2ec6ec52c429c1eaf8fc6ce7bddd46b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267714
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-06-23 22:02:41 +00:00
Brian Watson 7693a35e6f Replace canvas-axe-selenium with stormbreaker
closes OUT-4491

flag=none

Test-plan:
- trigger axe build and results.html is appropriately created

Change-Id: Ibbab57c52b24152a49bc0912ea7ebb5638a7e657
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266394
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Augusto Callejas <acallejas@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-06-23 20:19:51 +00:00
Kyle Rosenbaum 5677d7531d remove docker_base podTemplate usage, cleanup nodeRequirements usage
refs DE-718

test plan:
  - EC2 builds continue to work as expected

Change-Id: Ibed627a4e1d4b1e40520036df2b8a4e1d29d5fcc
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267159
Reviewed-by: Aaron Ogata <aogata@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-06-22 15:19:48 +00:00
Aaron Ogata 682da3f865 convert vendored gems to extendedStage
refs DE-716

Change-Id: I7b3da7250a5c7ba815bae54ce91505c5b9b2a70b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267160
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-06-15 18:21:22 +00:00
Kyle Rosenbaum 0e6ec8ff2e remove EKS specific keys from nodeRequirementsTemplate
refs DE-717

test plan:
 - EC2 builds continue to work properly

Change-Id: I1bc92605cae1f4b246752c3fb032961b65c80bf6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267156
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-06-15 17:43:16 +00:00
Aaron Ogata 9c6e169d55 convert contract tests to using docker bridge network
refs DE-715

Test Plan
1. Contract Tests passes

[canvas-builds-refspec=755cccfd95de9aafca779c0a1f5697fc9eb40b6f]

Change-Id: I077ae015ca7c50cf4d8774958438a948649c2fbf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267131
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-06-15 16:37:49 +00:00
Aaron Ogata 3dbf596e03 convert contract tests to EKS-compatible syntax
refs DE-707

Change-Id: I0d823124c25b879ff3c572240720f39ba9371909
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267009
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-06-15 13:57:51 +00:00
James Butters bfc3a16b63 fix linters code build for plugins
linters on plugin builds are currently failing because we are trying
to run git commands from /usr/src/app rather than the plugin
directory.

flag = none
closes: DE-713

Test Plan:
-Build passes
-plugin build with changes passes

Change-Id: Iad5b6275845e47159910e964993c71f40bf19672
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/267100
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
2021-06-14 22:50:19 +00:00
Aaron Ogata 3998b7a026 convert contract tests to extendedStage pattern
refs DE-707

Test Plan
1. Test count aligns with current master
2. Outcomes publish API step doesn’t publish on pre-merge and does publish on post-merge

Change-Id: Ic69f9b74137ffd36fc5a0964e5880a59457fca36
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266983
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
2021-06-14 15:29:15 +00:00
Aaron Ogata 5d33184845 convert linters to EKS-compatible syntax
Test Plan
1. Linters works on EKS
2. Linters works on EC2
3. Linkers runs appropriate stages
4. Yarn changes run appropriate stages
5. Groovy changes run appropriate stages
6. Linters reports back to patchset via gergich

Change-Id: I6c50ab5a6be2e1b7031b56c70ee6e2727e92580e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266509
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-06-11 20:04:35 +00:00
Aaron Ogata 9be94c6f23 restructure filesChangedStage for reusablity
refs DE-706

In order to access the buildConfig variables without duplicating constants in other shared library files, restructure this stage to be in its own files, and provide helper methods for getting / setting changed file state.

Test Plan
1. Normal build runs appropriate stages.
2. Local docker dev changes runs appropriate stages.
3. Groovy linter changes runs appropriate stages.
4. Migration changes run appropriate stages.
5. Spec changes run appropriate stages.
6. Yarn changes run appropriate stages.

Change-Id: I72e35d2b45d4842e195cc27351327a6907b073b7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266957
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-06-11 18:57:46 +00:00
Aaron Ogata 90dff6b5ea remove runAsUser root hack
refs DE-706

Test Plan
1. JS job passes

[canvas-builds-refspec=84d438a4b44cd177a0734d468a801fd1a15a333c]

Change-Id: I124a34dc26c018d4205ec32116490052a8655e6a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266849
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-06-11 16:06:12 +00:00
Aaron Ogata 3400c31a83 convert dependency check stage to using npm
refs DE-706

The snykSecurity() plugin doesn’t seem to work on EKS, fortunately we can convert it to using the npm package instead which also reduces complexity.

Test Plan
1. Dependency check runs and reports results to snyk on EC2
2. Dependency check runs and reports results to snyk on EKS

Change-Id: I317ffe8c90cda6754a2ad5df7227224450b86546
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266779
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>
2021-06-10 14:10:41 +00:00
Aaron Ogata 0fbf4b027f convert JS job to EKS-compatible syntax
refs DE-687

Convert jobs over to EKS-compatible syntax in order to perform AB testing on EKS builds.

Test Plan
1. EC2 builds JS job with correct number of test results
2. EKS builds JS job with correct number of test results

[canvas-builds-refspec=3f9a35ef55d38ac885c3a4daef03e7e19cd8f4e7]

Change-Id: I350f2983eebeda4aa634daba0579389b3b987c6b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265580
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-06-07 23:05:24 +00:00
Aaron Ogata c52da6c883 move JS distribution to jsStage
refs DE-687

Test Plan
1. Test counts align with current master

Change-Id: I1900817b51f0857c6e22ea8361683cc08f61a19f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266448
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-06-07 16:07:31 +00:00
Aaron Ogata fe5d819183 stop passing delegate manually as function argument
refs DE-687

Test Plan
1. JS test count equals master test count
2. "expected to call" CPS warning doesn't appear

[canvas-builds-refspec=5a9ac2821ed203759e4f0e37f579774a210c81ba]

Change-Id: Id5e5c8c3b80ad5483f8b08913806b2195401e334
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/266238
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-06-03 19:58:12 +00:00
Aaron Ogata 37da99de3c move js stages to shared library
refs DE-687

Test Plan
1. All JS test counts align with latest post-merge

Change-Id: Id803db3f13999e149ecb2dfed32efc66dac61c76
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265419
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2021-05-21 15:20:26 +00:00
Aaron Ogata e76b7d4274 move docker copy operations to tearDownNode
refs DE-687

Test Plan
1. All test counts align with master for JS jobs

Change-Id: Iffe8ca4f873429b258269d371da3c67c1363a0e4
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265395
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2021-05-20 20:16:53 +00:00
Aaron Ogata 55442143fd align all JS output directories to single directory on Jenkins
refs DE-687

As part of our work on EKS, we need to align the EC2 / EKS paths to pull artifacts from the same path on the container and host. As a step towards that, ensure that all containers output their test files to the same directory.

Change-Id: I312fb5f8505122c68ba5aaba30730aa5c1887177
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265370
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-20 17:28:03 +00:00
Andrea Cirulli 70bb73c35b add jenkins file to the groovy linter stage
refs DE-690
flag = none

test-plan:
- Build passes
- Build trigger groovy linter stage if a change to Jenkinsfile is
made
- Build fails if a Jenkinsfile has linter issues

Change-Id: Ifdabb4f28f6124afcb6621844375a8de4b35d453
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265279
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-19 20:51:13 +00:00
Andrea Cirulli 796257539e fix linter rules
Fix following linter issues:
- ParameterName
- CouldBeSwitchStatement
- UnusedMethodParameter

refs DE-690
flag = none

test-plan:
- Build passes
- QA build that triggers FSC and executes the spec changed

Change-Id: I11baf5094e96d33bc6be7f5f03d680f34cc1d026
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265266
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
2021-05-19 15:43:33 +00:00
Brian Watson 62db8b77ee Add parsed results as csv to axe selenium
flag=none

closes OUT-4438

Test-plan:
- see axe build corresponding to latest PS
- in Build Artifacts under tmp, there should be axe_results.csv
  compare it against Test Results and verify that specs are mapped
  to specific a11y violations
- in Build Artifacts, verify that rspec_results with nested xml files
  are archived for axe build but not for main build

Change-Id: Ic8c9ccbe9350bde0d0fd6914f16330ca5155a95b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264673
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Pat Renner <prenner@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Brian Watson <bwatson@instructure.com>
Product-Review: Brian Watson <bwatson@instructure.com>
2021-05-18 22:56:14 +00:00
Aaron Ogata a1a55bd406 Revert "split rspec / selenium stages by thread"
This reverts commit c131c39e3d.

Reason for revert: broke Jenkins

Change-Id: I9b6f25f4b6f2128cae7e763073d3a3eadcd0ea30
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264748
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-18 13:55:22 +00:00
Aaron Ogata 390b69a59c Revert "remove run-and-collect-output script"
This reverts commit d84b446c6a.

Reason for revert: broke Jenkins

Change-Id: I67a18233892276ce4a7a273aee6a75504fffad27
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264752
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-18 13:55:19 +00:00
Andrea Cirulli 7a01e4977e add groovy linter stage
refs DE-643
flag = none

Add a linter stage for groovy to the main build:

- Build passes
- Build passes and trigger groovy linter stage if no
linter errors are present
- Build fails on groovy linter stage if a linter issues
is found

Change-Id: I8f3c2f2f577227854e19b1af83400018a4c792db
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265024
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-17 19:43:03 +00:00
Aaron Ogata 073788ed9d movs JS setup / tear down functionality to new pattern
refs DE-687

Test Plan
1. Each JS stage executes all tests
2. Each JS stage build report summary works for failures

Change-Id: I2f9c9347ff6caac22ef3785e6a1a298870961f79
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265049
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-17 18:08:13 +00:00
Aaron Ogata d84b446c6a remove run-and-collect-output script
refs DE-644

Test Plan
1. Selenium performance Chrome build starts / runs the relevant tests (build currently fails on master)

Change-Id: I6f200eaea179664ec248b478868e3c31b4373e70
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265067
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-17 17:31:25 +00:00
Aaron Ogata c131c39e3d split rspec / selenium stages by thread
refs DE-644

[canvas-builds-refspec=c30dc5a5768e38eb7ef483a6b8b5e7c30af8a25d]

Test Plan
1. RSpec / Selenium use correct number of nodes and run correct number of tests
2. RSpec / Selenium retry according to RERUNS_RETRY value
3. Build Summary Report generates correctly

Change-Id: I886e41a8712bda5a98f58eee0ba42d034a08db25
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265014
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-17 14:11:02 +00:00
Aaron Ogata 3f929c0bd2 move rspec / selenium runner to rspecStage
refs DE-444

Test Plan
1. RSpec / Selenium use correct number of nodes and run correct number of tests

Change-Id: I8d6524620e2407ee5a58cb3edb6d7a691ab92763
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265008
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-14 19:03:02 +00:00
Aaron Ogata 782b134074 move rspec / selenium tear down hooks to correct location
refs DE-444

Test Plan
1. RSpec / Selenium use correct number of nodes and run correct number of tests
2. Build Summary Report shows test results + HTML page

Change-Id: Icf39240c8f26e78024f4211ed7b12d3c61426b70
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265005
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-14 18:30:50 +00:00
Aaron Ogata e74037bf87 move rspec / selenium node setup functions to new format
refs DE-444

Test Plan
1. RSpec / Selenium use correct number of nodes and run correct number of tests

Change-Id: Ie95d0a504ae52ffa8e3540f3bc4facbed9d4fcad
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/265000
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-14 18:00:35 +00:00
Andrea Cirulli 17497b474c fix/skip linter rule issues
fix and skip following linter rules:
- PublicInstanceField
- NoWildcardImport
- UnnecessaryGString

test-plan:
- build passes

Change-Id: I9ad968b6770bf57f0b19e8bd1d04b878301a858b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264998
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-14 17:37:29 +00:00
Aaron Ogata 80330a434a remove unnecessary rspec / selenium stage runner wrappers
refs DE-444

Test Plan
1. RSpec / Selenium use correct number of nodes and run correct number of tests

Change-Id: I6a58419513becc2cf587b65e05df3ed75ff6fe43
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264996
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>
2021-05-14 17:19:53 +00:00
Aaron Ogata d7bb432cef move environment variables to correct location
refs DE-444

Test Plan
1. RSpec / Selenium obey force failure flag
2. RSpec / Selenium retry once upon test failure
3. RSpec / Selenium use correct number of nodes and run correct number of tests
4. Parallel log build works

[canvas-builds-refspec=5d46b7af0f1d5beb710b02863cf7b98689d0c332]

Change-Id: I7dbc2548f949ec307dec8e7d73d041ab24256072
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264978
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-14 17:05:57 +00:00
Aaron Ogata e6e2759196 integrate rspecConfig() and seleniumConfig() into their callers
refs DE-444

Test Plan
1. Rspec / Selenium use appropriate number of nodes
2. Rspec / Selenium retry only once
3. Force failure flag works

Change-Id: I2fde387b410b895f9cf0cade9e5986ee34dd8391
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264904
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>
2021-05-13 15:23:22 +00:00
Aaron Ogata 892b3bee6a move uploadParallelLog call to associated job
refs DE-444

This function is only used in one place, and we need to remove this file, so just integrate it into the calling job itself.

Change-Id: Ibda768b6672e1090947e72b1dd820662d895ab7b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264902
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-13 15:10:43 +00:00
Aaron Ogata 71207a592f remove unused MAX_FAIL variable
refs DE-444

This extra parameter isn’t used anywhere, so remove it.

Change-Id: I487e7a6d73fdd218f87263fdf1a8970057ae3ef8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264900
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-13 14:40:37 +00:00
Aaron Ogata 9e10e34935 prepare rspec / selenium stage generation structure
refs DE-444

Modify the generation of these stages to align with our new extendedStage() conventions in preparation for a refactor of how the stage internals are implemented.

Test Plan
1. All RSpec stages are queued and run the correct tests
2. All Selenium stages are queued and run the correct tests
3. Parallel log build works correctly

Change-Id: Id0a35f84ddf8471f1f06eede608d6ad4dc964dea
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264870
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2021-05-13 14:23:55 +00:00
Aaron Ogata dd382af5d9 remove unnecessary patchsetTag parameter
refs DE-444

This extra parameter isn’t needed, the cases that use it already have access to env.PATCHSET_TAG.

Change-Id: I60778b9efaccb49c4a2ca64ab0cf37c2f3f83c1e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264874
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-13 14:14:20 +00:00
Aaron Ogata c0d3dc25ee remove old coverage code from JS job
refs DE-462

As part of the EKS transition, we need to restructure the JS stages. The coverage code is currently not working and will get in the way of this transition. Remove it for now and refs the coverage restoration ticket so when we bring back the coverage build the code is here for viewing.

Change-Id: I7437584107ac13a79000d43f5c14baa31dac5027
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264864
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-12 22:19:42 +00:00
Aaron Ogata 03ed3ace4b remove old coverage code from rspec / selenium
refs DE-462

As part of the EKS transition, we need to restructure the rspec / selenium stages. The coverage code is currently not working and will get in the way of this transition. Remove it for now and refs the coverage restoration ticket so when we bring back the coverage build the code is here for viewing.

Change-Id: I137e7c20674542aac31184c6fd7aa648b6656362
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264859
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-12 22:08:32 +00:00
Kyle Rosenbaum 347f73b172 remove docker_processes from core rspec and selenium test runs
refs DE-467

it is no longer possible to spin up multiple docker containers
ona  single rspec or selenium agent when running tests. parallelization
is now exclusively done through multple rspec processes on
a single container.

test plan:
- setting docker_processes ENV variable has no effect
- settting rspec_processes still runs multiple test threads
- tests continue to run as expected given that docker_processes has
been set to 1 for multiple months.

Change-Id: I604d953a71ad220373b6a71d558f46bff29f820e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263701
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: James Butters <jbutters@instructure.com>
2021-05-12 19:47:12 +00:00
Kyle Rosenbaum 3b9f616401 add RSPEC_PROCESSES to Flakey Spec Catcher
refs DE-467

this change will require a followup to remove
DOCKER_PROCESSES.

test plan:
-run FSC with a changed spec.
-FSC runs the modified spec 30 times, 10 times in each thread.
-run FSC with multiple chnaged specs

Change-Id: I640c7b87e439db3c7efb42ac4e7f81e10dcbc5c9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264703
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
2021-05-12 00:18:44 +00:00
Andrea Cirulli 5f76e48163 fix UnusedMethodParameter linter issue
refs DE-643
flag = none

test-plan:
- Build passes

Change-Id: I4e00b018158c33f823bae8ebeea1f4e4c37721d3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264706
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-11 20:13:03 +00:00
Kyle Rosenbaum 0ed675c96b Revert "add RSPEC_PROCESSES to Flakey Spec Catcher"
This reverts commit d8fba6977b.

Reason for revert: Broken

Change-Id: I2a0feea7fac815a8a1abcecf4be0d9fdfb909174
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264019
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
2021-05-11 18:40:10 +00:00
Kyle Rosenbaum 6370f7da0d Revert "modify flakey-flakey-spec-catcher to ONLY use RSPEC_PROCESSES"
This reverts commit bff2124548.

Reason for revert: Broken

Change-Id: Idbcede420c54db8cce570aa0ac275934daa649de
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264018
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-05-11 18:37:18 +00:00
Kyle Rosenbaum bff2124548 modify flakey-flakey-spec-catcher to ONLY use RSPEC_PROCESSES
refs DE-467

Change-Id: If7b4158f752f8b8ab4982dbb2f667db1c17e349e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264689
Reviewed-by: Aaron Ogata <aogata@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-05-11 18:12:29 +00:00
Kyle Rosenbaum d8fba6977b add RSPEC_PROCESSES to Flakey Spec Catcher
refs DE-467

this change will require a followup to remove
DOCKER_PROCESSES.

test plan:
-run FSC with a changed spec.
-FSC runs the modified spec 30 times, 10 times in each thread.

Change-Id: I26755f6b9c3bf63267eb9d1ac648901d67ee41df
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264129
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-05-11 16:45:43 +00:00
Aaron Ogata 35a01d7e8c move dependency check stage to linters node
refs DE-670

For the EKS transition, we need to ensure that the Linters stage doesn’t run on the EC2 builder node and instead properly uses EKS containers. As part of this work, transition the dependency check stage to running as part of the Linters set of stages.

Test Plan
1. Dependency Check runs correctly on post-merge build
2. Linters runs correctly on pre-merge build

Change-Id: I16d9fb63b40b6eb9f8e24b4f5c4253538e91bbf0
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264653
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-11 14:25:37 +00:00
Aaron Ogata db761b4f69 Revert "move dependency check stage to linters node"
This reverts commit 88829e1074.

Reason for revert: broke post-merge

Change-Id: I91384fd9c2a698eaabe02d1c63a959b8846a749b
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264016
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-10 23:47:19 +00:00
Aaron Ogata 88829e1074 move dependency check stage to linters node
refs DE-670

For the EKS transition, we need to ensure that the Linters stage doesn’t run on the EC2 builder node and instead properly uses EKS containers. As part of this work, transition the dependency check stage to running as part of the Linters set of stages.

Test Plan
1. Dependency Check runs correctly on post-merge build

Change-Id: Ifc9790e481e7d6cf7ba81e9f78b804a955f266b8
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264589
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-10 23:32:31 +00:00
Aaron Ogata 0194f77f2e pre-pull linters image as part of setup
refs DE-670

By pulling the image as part of setupNode, we get flakey network protection and also only pull the image once per build, instead of once per parallel stage.

Change-Id: I77b2d63a3ab971067604c30001387bbf67ad6c4a
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264590
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-10 23:31:51 +00:00
Aaron Ogata f8f556d866 split linter stages into own node
refs DE-670

For the EKS transition, we need to ensure that the Linters stage doesn’t run on the EC2 builder node and instead properly uses EKS containers. As part of this work, transition linter stages into their own node as a sibling stage to Builder.

Test Plan
1. Linters run correctly
2. allow-stages directive works with Linters
3. allow-stages directive works without Linters

Change-Id: Ieae121ae3e79b5e30864f9060042e4453a8093e6
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264569
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-10 21:31:15 +00:00
Kyle Rosenbaum 531eda2a12 add RSPEC_PROCESSES to contract_tests
refs DE-467

this change will require a followup to remove
DOCKER_PROCESSES

test plan:
-run linters
-linters use expected db on a per thread basis

Change-Id: Ie0fee7d22a335899e6dac5490f4cadf567e4e32f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264294
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-05-10 21:10:47 +00:00
Aaron Ogata 20cce7ad2c remove antiquated linter scripts
refs DE-670

Remove scripts that are part of an old iteration of Linters that is no longer in use.

Test Plan
1. Linters passes and runs all appropriate linters

Change-Id: I773bc090c4d028695f81ff9982ccedab66c5228c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264562
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-10 20:26:15 +00:00
Aaron Ogata 8f2885814c merge master bouncer into Linters parallel stages
refs DE-670

For the EKS transition, we need to ensure that the Linters stage doesn’t run on the EC2 builder node and instead properly uses EKS containers. As part of this work, transition Master Bouncer to using the Linters image since it uses Git.

Test Plan
1. Master Bouncer runs correctly

Change-Id: I8aa6d2f589326c4f88e313d423f023ec9af8a79f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264555
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>
2021-05-10 20:04:09 +00:00
Aaron Ogata c16a81dd02 always upload Linters image to starlord
refs DE-670
refs DE-500

For the EKS transition, we need to ensure that the Linters stage doesn’t run on the EC2 builder node and instead properly uses EKS containers. To do this, the Linters stage needs to always upload its image so that EKS can pull it.

Test Plan
1. Linters properly reports to the correct gerrit for main builds
2. Linters does not become the runtime bottleneck

Change-Id: Ibe28d47c13f965ee468b49ce6a74e3d08b75715d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264549
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>
2021-05-10 19:25:44 +00:00
Aaron Ogata 2869b6e1cb remove need to mount .git directory as volume for Linters
refs DE-670

For the EKS transition, we need to ensure that the Linters stage doesn’t run on the EC2 builder node and instead properly uses EKS containers. To do this, the Linters stage needs to not depend on having the .git directory on the host machine.

Test Plan
1. Linters properly reports to the correct gerrit for main builds
2. Linters properly reports to the correct gerrit for plugin builds
3. Linters does not become the runtime bottleneck
4. Linters yarn.lock diff check works

Change-Id: I49650bfb3feece9614a667d3af5ec9dba8c2e838
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264539
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-10 18:57:42 +00:00
Andrea Cirulli 653fa0936e fix parameter name linter issues
refs DE-643
flag = none

test-plan:
- build passes

Change-Id: I5b324cec3b031754c40ac71595b6b6f86bc1ab65
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264431
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-07 14:27:56 +00:00
Andrea Cirulli f650b95f9a fix VariableName linter issues
Fix the linter issues and restore the previous behaviour of codeNarc
for final variables

  refs DE-643
  flag = none

  test-plan:
  - build passes

Change-Id: I16f5e388e32fe0aec6789f1f87b0da03b1eacc83
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264362
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-06 20:17:43 +00:00
Andrea Cirulli 6859b6eedf fix ImplicitClosureParameter linter issues
refs DE-643
flag = none

Change-Id: If4bc5c0ea42294e2ae1861d3ee802146fa10882f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264246
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-05 18:44:06 +00:00
Andrea Cirulli 19ad240abb remove all UnnecessaryPublicModifier linter issues
flag = none
refs: DE-643

Change-Id: I251321e6558ad1b7a0a36d1053a7b02f393bd233
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264178
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
2021-05-04 18:23:21 +00:00
Ethan Vizitei 2244ec98ab AUA writes on message bus
closes FOO-1835
closes FOO-1837
closes FOO-1838
flag=none

TEST PLAN:
  1) enable aua on pulsar
  2) all aua log messages that go to the
     db also get sent to a pulsar topic

Change-Id: I0f90ab7c8aa32376a122e30a1c104a1651a507bf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263930
Reviewed-by: Cody Cutrer <cody@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-05-03 16:33:02 +00:00
Aaron Ogata e108e64784 apply formatting.ClassStartsWithBlankLine to linter
refs DE-643

Change-Id: I27c696a4c34a3109247b9da3c0158d19f44252c3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264053
Reviewed-by: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
2021-05-03 14:29:15 +00:00
Aaron Ogata 70b06aaa0b apply autoformatter to all files
refs DE-643

Change-Id: I9482afa27e6b8734640741fca784f971f782af26
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/264050
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
2021-05-03 14:07:45 +00:00
Kyle Rosenbaum 72cba075d7 fix fatal: Not a valid object name master in linters
test plan:
-run linters on master branch

Change-Id: I1ba84324ea54e5480dc9416fa5fa2bb944030aab
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263923
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-04-29 18:32:22 +00:00
Ethan Vizitei d815898134 make sure pulsar cert is on disk
and that we have a vault token

refs FOO-1842
flag=none

If a cert url is in the config, we need
to fetch and write it to disk before trying
to open a connection to pulsar or we'll
get failures.

Also add some config caching so
we aren't re-parsing the same YAML
blob over and over.

TEST PLAN:
  1) specs should pass
  2) be in a pulsar-enabled environment
      with a cert configured
  3) when you build a message_bus producer,
     the cert is fetched and written to
     disk at the configured path.

Change-Id: I2fb61badd05aedadb6d07475875692b30dd30db9
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263687
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Jacob Burroughs <jburroughs@instructure.com>
QA-Review: Ethan Vizitei <evizitei@instructure.com>
Product-Review: Ethan Vizitei <evizitei@instructure.com>
2021-04-28 15:36:05 +00:00
Kyle Rosenbaum 1e43e05241 add podTemplate and container definition to all applicable stages
refs DE-558, DE-582

[use-kubernetes]
[canvas-builds-refspec=24d3d83e8034ac6ad5380936498e1dcf01ab50eb]

modify the existing nodeRequirements to add podTemplate and
container definitions. initially, the podTemplate to be used
is docker-in-docker. the "use-kubernetes" flag must be set
as well.

test plan:
- build executes on k8s nodes in EKS when "use-kubernetes"
flag is set.
- build executes on EC2 when "use-kubernetes" flag is not set.

Change-Id: I13c68e5420bbf414532518eaf69ac82f9310bfbf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/263257
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
QA-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Kyle Rosenbaum <krosenbaum@instructure.com>
2021-04-27 19:47:25 +00:00