Details
-
Task
-
Resolution: Done
-
Neutral
-
None
-
None
-
None
-
None
-
-
Empty show more show less
-
Empty show more show less
Description
As discussed here: https://www.notion.so/magnoliacms/Testing-QA-Group-of-Interest-caa8f2151c8547d5a250dd4c42f4f345?pvs=4
The current solution with cross-Jenkins triggers isn't great for many reasons:
- in some cases it's triggering useless builds
- if there was any type of change in CE, regardless of whether it will change anything in SaaS webapp (which overlays the empty webapp only)
- because we have many builds on Core Jenkins, but there we don't care so much & we also can't manage it differently, as the Jenkins Maven plugin orchestrates it all for us
- in other cases it's not triggering useful builds (e.g. any change in SSO won't rebuild the SaaS webapp)
- sometimes, we trigger too many builds in a row
To solve these problems for good it should be possible to implement the following cron job:
- it would look at the cloud webapp's dependency tree
- problem: the Jenkins helper job dependency-tree-service can't help because the cloud-webapp isn't deployed to Nexus, hence it won't work
- instead, we have to manually fetch and dissect the webapp's pom using Java Maven models
- for any SNAPSHOT in the dependency tree, it would look up its timestamp on Nexus (we do the same for releases in PostReleaseService)
- the job would then run every X hours. If upstream changes are detected, it would trigger a new build.
- reuse token used by plugin? yes

- we arrived to 2 hours as a first number because the target job takes 1.5hr to complete
- reuse token used by plugin? yes
Checklists
Acceptance criteria