[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
review
stage for thereview-deploy
andreview-stop
jobs. - Create a new
qa
stage for thereview-qa-smoke
,review-qa-all
,review-performance
andpackage-and-qa
jobs. - Make the
review-build-cng
manual. Instead of making it poll thegitlab:assets:compile
job until it's finished, make thegitlab:assets:compile
job play thereview-build-cng
job once it's done instead (e.g. https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/199280636).- This will make the
review-build-cng
duration accurate (e.g. https://gitlab.com/gitlab-org/gitlab-ce/-/jobs/199280710) and prevent it from timing out ifgitlab:assets:compile
taking too long to finish. This will also save resources since thereview-build-cng
job 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_done
hack entirely sincereview-deploy
/review-stop
andreview-qa-*
/review-performance
/package-and-qa
are now in separate stages. - It's ok to move
review-deploy
to a new stage because its dependency (review-build-cng
) should be the longest job from thetest
stage, so once it's finished, it will automatically starts thereview
stage. - Remove the
environment
key from thereivew-qa-*
andreview-performance
jobs 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-performance
jobs
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