[EE] Organize better Review Apps and QA jobs
EE port of https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/27509.
What does this MR do?
This reorganize the Review Apps and QA jobs as follows:
- Create a new
reviewstage for thereview-deployandreview-stopjobs. - Create a new
qastage for thereview-qa-smoke,review-qa-all,review-performanceandpackage-and-qajobs. - Make the
review-build-cngmanual. Instead of making it poll thegitlab:assets:compilejob until it's finished, make thegitlab:assets:compilejob play thereview-build-cngjob once it's done instead (e.g. https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/199280636).- This will make the
review-build-cngduration accurate (e.g. https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/199280710) and prevent it from timing out ifgitlab:assets:compiletaking too long to finish. This will also save resources since thereview-build-cngjob won't start until its dependency job is successful, compared to the previous implementation where it would automatically start, then poll the dependency job for at least 15 minutes, and would perform its task even if the dependency job was failing.
- This will make the
- Removed the need for the
wait_for_job_to_be_donehack entirely sincereview-deploy/review-stopandreview-qa-*/review-performance/package-and-qaare now in separate stages. - It's ok to move
review-deployto a new stage because its dependency (review-build-cng) should be the longest job from theteststage, so once it's finished, it will automatically starts thereviewstage. - Remove the
environmentkey from thereivew-qa-*andreview-performancejobs so that they're not considered "deployment" jobs. Save the Review App URL in the deploy job instead, save it as an artifact and retrieve it in thereivew-qa-*andreview-performancejobs
TODO:
-
Update documentation: https://docs.gitlab.com/ee/development/testing_guide/review_apps.html#cdcd-architecture-diagram
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
-
Documentation created/updated or follow-up review issue created -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Performance and testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec -
The MR includes necessary changes to maintain consistency between UI, API, email, or other methods -
Security reports checked/validated by a reviewer from the AppSec team
Edited by Rémy Coutable
