[canvas-builds-refspec=de97029ae53f268357222cbdea908873f5c2f7d7]
dev branches will rebase with their head, then rebase with master.
stable branches no rebase.
any other branches will follow the stable branch workflow.
flag = none
closes: DE-18
Test Plan:
- Normal build passes
- dev branch build rebases correctly
- image tags are working with branches, replacing
forward slash with underscore.
Change-Id: Ibf3f4b97c42b0aea5d49f14bb498a09dae7c091f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251756
QA-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
refs DE-361
Test Plan:
1. Normal build fails for changes to Jenkinsfile
2. Normal build fails for changes to Jenkinsfile.*
3. Jenkinsfile build works for changes to Jenkinsfile via manual trigger
4. Jenkinsfile build works for changes to Jenkinsfile.* via manual trigger
Change-Id: Ie61120a4b1798b39290ba879d28a4614ab57450e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250679
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>
remove all the logic around successes lib from canvas-builds
refs DE-355
flag = none
test-plan:
- Build passes if we use a canvas-builds version that does not
include successes lib
- Build rerun all stage when retriggered from a forced failure
- Build passess
Change-Id: I0127f9992a2a307a953f6cbeac5450a17535801e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251795
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>
refs DE-361
Test Plan:
1. Normal build fails for changes to Jenkinsfile
2. Normal build fails for changes to Jenkinsfile.*
3. Jenkinsfile build works for changes to Jenkinsfile via manual trigger
4. Jenkinsfile build works for changes to Jenkinsfile.* via manual trigger
Change-Id: If023727544cebe39870e0be7d4e00ae7cfc89a7e
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251933
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>
refs DE-351
flag = none
test-plan:
- Build passes
- Test FSC is working
Change-Id: Id3844dd12600e5d3a80d267bf67916c4d43d2548
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251743
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>
These changes need to be accompanied by changes
to Jenkins config:
- main-canvas-postgres-12-ruby-2.6 and
main-canvas-postgres-12-ruby-2.6-postmerge, SCM
refspec changed to master
- sub-builds scm changed from canvas-lms-refspec
to JENKINSFILE_REFSPEC defaulting to master
- add Jenkins parameter JENKINSFILE_REFSPEC to sub-builds
- add new Jenkins build for main Jenkinsfile changes
- main build don't trigger on Jenkinsfile changes using
forbidden path.
Testing once merged:
- verify builds without Jenkinfile changes pull the master
version of Jenkinsfile
- verify sub-builds as well
- verify gerrit with Jenkinsfile changes triggers new build
- verify sub-builds get Jenkinsfiles from gerrit not master
- test a combination of Jenkinsfiles, not just the main one
- verify main build is not triggered
- run a plugin build without canvas-lms-refspec
- run a plugin build with canvas-lms-refspec
Change-Id: Ic6be8b446f80d57f7b0f25c77e6cffb959e03236
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251634
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: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
refs DE-349
[canvas-builds-refspec=f04c7902ccabadb61cee13fa93f09b1184925b84]
Test Plan:
1. Build pulls master when flag does not exist
2. Build pulls specified commit when flag exists
3. Build pulls master for post-merge when flag exists
Change-Id: I365efd3a305d08f7a3df76fd44799756104b4c1f
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251635
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>
adding variables to use rails 6 in new test build.
Test Plan:
- Jenkins build pass
- rails 5 is installed and used
- Run Main-from-plugin
- rails 5 is installed and used
- Run new rails6 build
- rails 6 is installed and used
- Run new rails6 plugin build
- rails 6 is installed and used
Change-Id: Ib4441f2eb6fb8946089c17bf81ec16bcb7b42020
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250840
QA-Review: James Butters <jbutters@instructure.com>
Reviewed-by: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
refs DE-324
Some tests require lib/api_scope_mapper.rb to be generated by the doc:api task, and this is a slow operation that all builds run before starting tests. Generated changes to this file are relatively rare, so let’s require developers to commit their changes to it to save time on all builds. In addition, install a linter to verify that matching changes are pushed.
[change-merged]
[build-registry-path=jenkins/canvas-lms/evaluate-webpack-docs]
Change-Id: Iaa6ebb1ba8cbb008191f6bee14b3bf2f413168e7
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250801
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>
Test Plan:
1. Rebase works when commit is within pulled range
2. Rebase errors when commit is out of range
Change-Id: I16af17296bcfcf59ca008b7d6dd44f961b75afcb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250462
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>
move file migrations.groovy from canvas-lms to
canvas-builds
refs DE-328
flag = none
test plan:
- Ensure build passes
- Ensure migration cache is used when there is no migration
- Ensure the cache is not used with skip cache flag
- Ensure the cache is not used if we force a db
migration
Change-Id: I58671667e2e351a65439bbd55ae884118cd30575
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250531
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
migrate functions related to failure message report
to canvas-builds shared libray
refs DE-323
flag = none
test plan:
- Ensure build passes
- Ensure canvas-lms PS with spec failures create
the failure-messages file and archive it into the
artifacts
- Ensure canvas-lms PS with spec failures send
failure links as gerrit comment on the PS
Change-Id: I1c9db466787f6761e7a7e0ae1d00d7a8422c4ccf
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/250243
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
move the snyk function into canvas-builds and
use the snykSecurity plugin instead of the
custom code
refs DE-316
flag=none
test plan:
- Ensure build passes
- Ensure build passes with change merged
flag
- Ensure snyk reports are archived correctly
Change-Id: I48087091aaccbc12441e25be3f06285bd7f99646
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/249712
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: Kyle Rosenbaum <krosenbaum@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
refs DE-212
If a user isn’t changing any front-end related files, we can get a significant time savings by not re-building webpack. In order to do this, we have to remove the multi-layer dependencies image due to poor docker support for multi-layer caching. The dependencies build is an artifact of the ruby-only image that no longer exists, so no behavioural changes are expected.
Test Plan:
1. Ensure that the post-merge / pre-merge caches are used on post-merge build.
2. Ensure that the pre-merge cache is used on a pre-merge build.
3. Ensure that both above work on specifically the same / different nodes.
[change-merged]
[build-registry-path=jenkins/canvas-lms/de-212]
[skip-rebase]
Change-Id: I659db8f201bfe5e4fa6d20d802a639f5a55685df
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/245976
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>
delete the local successes.groovy files and use the
successes library migrated to canvas-builds
refs DE-53
flag=none
test plan:
- Ensure build passes using the successes library
migrated to canvas-builds
Change-Id: I8cea11bb531012eeec2e46cd574566218fff2733
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/249202
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Post-merge plugin builds should run against canvas master.
flag = none
Test Plan:
-run plugin build with custom canvas-lms-refspec, view logs
to see that it was honored.
-run change-merged plugin build, verify the default master
canvas-lms-refspec was used rather than the custom refspec.
Change-Id: Ia96628543e2e0d8a9f16225f787e59e0be481094
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/249597
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Aaron Ogata <aogata@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: James Butters <jbutters@instructure.com>
refs DE-23
[change-merged]
[build-registry-path=jenkins/canvas-lms/de-23-test]
flag = none
Test Plan:
1. Jenkins pre-merge build with a new migration re-builds migrations
2. Jenkins pre-merge build with migrations cached does not re-build
3. Jenkins post-merge build with migrations cached re-builds migrations
4. skip-cache directive does not use the cached migration
5. Jenkins non-main builds works as expected
6. Jenkins FSC works as expected
Change-Id: I3221400a15220884740ad5136de7185a88ae2b39
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/241013
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Aaron Ogata <aogata@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
refs DE-305
flag = none
test plan:
- Ensure build passes forcing the cdc build to be
executed
- Ensure build passes
Change-Id: Ifb3e6b26c384df26214217d4314d8756edba00d3
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/249101
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
create functions for MERGE_TAG and EXTERNAL_TAG vars
refs DE-303
flag = none
test plan:
- Ensure canvas-lms build passess using canvas_builds version
that implements the new functions
Change-Id: I81f5069721a9316c90d42ac77eaef076a0ef494c
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248946
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
refs DE-296
flag = none
test plan:
- Ensure canvas-lms build passes using the new version of canvas-builds
Change-Id: I188d273fabfd29057dcff53f1bbb3c7e93e093eb
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248851
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: James Butters <jbutters@instructure.com>
Product-Review: James Butters <jbutters@instructure.com>
QA-Review: Andrea Cirulli <andrea.cirulli@instructure.com>
Move the hardcoded var PUBLISHABLE_TAG used from Jenkinsfiles in
canvas-lms to be configurable into canvas-builds
refs DE-282
flag=none
test plan:
- Ensure canvas-lms build passes using the new function to get the
PUBLISHABLE_TAG
Change-Id: I4cbb7662282a7754ecb2c994abc1cb0c372cc70d
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248584
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: Aaron Ogata <aogata@instructure.com>
refs DE-285
Test Plan:
1. FSC works for main build
2. FSC works for plugin build
3. FSC works for force-failure path
Change-Id: If1c632fa047b6a7776f458baf5aa3926e62c5070
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/248421
QA-Review: Aaron Ogata <aogata@instructure.com>
Product-Review: Aaron Ogata <aogata@instructure.com>
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Ryan Norton <rnorton@instructure.com>