[FOLIO-1597] Add module dependency resolution quality gate for PRs in CI Created: 24/Oct/18  Updated: 26/Jun/19  Resolved: 08/Mar/19

Status: Closed
Project: FOLIO
Components: None
Affects versions: None
Fix versions: None

Type: Task Priority: P3
Reporter: John Malconian Assignee: John Malconian
Resolution: Won't Do Votes: 0
Labels: ci, sprint50
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original estimate: Not Specified

Issue links:
Relates
relates to FOLIO-1577 Automated builds for FOLIO 'release' Closed
relates to UXPROD-1827 CI-integrated continuous deployment (... Closed
relates to FOLIO-2118 CI-integrated continuous deployment (... Closed
relates to UXPROD-1133 Pull Request builds and integration t... Closed
relates to UXPROD-1423 Pull Request builds and integration t... Closed
Sprint:
Development Team: Core: Platform

 Description   

All module dependency resolution checking utilizing a tenant install endpoint in Okapi (simulate-mode).

The process would look something like the following:

1) deploy an instance of okapi (probably in a container) for each PR.
2) pull all module descriptors from folio-registry.
3) generate a module descriptor for the PR's module and post to local instance of okapi.
4) generate a list of stripes modules from 'next-release' branch of platform-core or platform-complete to enable in addition/in lieu of the local module we are testing.
5) create a tenant on local okapi instance
6) use tenant's install endpoint to simulate deployment
7) tear down local okapi instance

If there is a dependency resolution conflict, the PR fails. If there is no dependency resolution conflict, but the new version of the module is not included in list of modules to enable, a warning message is generated that signifies that no modules are prepared to use the new iteration of the module. This is useful for backend modules that increment the interface version.



 Comments   
Comment by John Malconian [ 05/Nov/18 ]

This feature has been implemented in branch FOLIO-1596 Closed of jenkins-pipeline-libs. Here's a example PR:
https://jenkins-aws.indexdata.com/job/folio-org/job/ui-users/view/change-requests/job/PR-557/35/console

To enable for a UI module, add the following (example) map configuration to the repo's Jenkinsfile:

stripesPlatform = [ repo:'platform-core', branch:'snapshot' ]

Specifying a 'stripesPlatform' is necessary to ensure dependency checks can be resolved. Currently, dependency checks are tested against all snapshot versions available. However, I believe that this feature is more valuable when checked against 'next-release' (only released versions). Added FOLIO-1577 Closed as a blocker for now.

Comment by patty.wanninger [ 03/Jan/19 ]

John Malconian Cate Boerema This does not seem like a ticket for the IC testers.

Comment by Cate Boerema (Inactive) [ 04/Jan/19 ]

patty.wanninger, true. John Malconian, In Review status means ready for the manual testers. If you are looking for a code review, please use Code Review status or close. Thanks!

Comment by Ann-Marie Breaux (Inactive) [ 15/Jan/19 ]

John Malconian I switched this to In Code Review; if you prefer for it to be closed, then close it. Definitely not "In Review" for manual testing. Thank you!

Comment by Jakub Skoczen [ 08/Mar/19 ]

John Malconian this has been in "CODE REVIEW" for some time, has it been completed? If so, where can I see the resulting dependency check?

Comment by John Malconian [ 08/Mar/19 ]

Jakub Skoczen Based on our discussions, we decided not to do this. Instead we decided to implement this feature on release builds only (separate issue). We can revisit this later if needed.

Generated at Thu Feb 08 23:14:30 UTC 2024 using Jira 1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d.