CU-862k9g97p & CU-862k9nc3k: App FE Restructure
The following MR addresses App FE (Web + Mobile) part of the pipeline restructure which is outlined in the following vibe diagram.
Summary of stage changes
Old Stage | New Stage | Job Changes |
---|---|---|
prepare |
check_and_prepare |
|
test |
test |
deployment_validation moved to check_and_prepare
|
test_results |
results |
|
code_analysis |
results_sonarqube |
|
increment_version |
removed |
increment_version moved to results
|
deploy |
release |
|
deploy_next |
release_next |
|
mobile_store_create_app |
removed | Jobs moved to release
|
mobile_store_beta |
removed | Jobs moved to release
|
mobile_store_production |
release_to_store |
|
invalidate_cdn_cache |
post_release |
|
notify |
complete |
|
Summary of rules
changes
- Refactor use of
BX_METRICS_SCAN
,COMPLIANCE_SCAN
, andIOS_CREATE_APP
variables by consolidating all three into one rule which is copied across many of the jobs. Before, the use of these variables were not consistent, in some cases individual rules per variable and others had the variable repeated multiple times across multiple rules. With this change, you will now just see the following:'$BX_METRICS_SCAN != null || $COMPLIANCE_SCAN != null || $IOS_CREATE_APP != null'
. - Unit tests now only run on MR and Master pipelines.
-
Notify CMT mobile App Ready
andNotify DockerIDE mobile App Ready
now only runs if a project produces mobile apps. -
deployment_validation
only runs on branch pipelines. -
license_scan
only runs on MR and Master pipelines. -
deploy
now only runs ifbuild_web
is also triggered.build_web
is triggered in following cases:- Manually triggered pipeline via UI or API on a Master or Feature/Fix branch
- Make changes in any of the following files on Master or Feature/Fix branch:
- template-app/**/*
- src/**/*
- Dockerfile
-
deploy_*
will no longer run on non web projects.
Testing
In order to run the tests, we created the following test repos:
- test-infra-dev - Dev Infra
- test-infra-uat - UAT Infra
-
test-app-web - A web-only app (
WEB_PROJECT=true
) -
test-app-web-and-mobile - Both web and mobile (
WEB_PROJECT=true
+IOS_PROJECT=true
+ANDROID_PROJECT=true
) -
test-app-mobile - A mobile-only app (
IOS_PROJECT=true
+ANDROID_PROJECT=true
) -
test-app-mobile-android - An android app (
ANDROID_PROJECT=true
) -
test-app-mobile-ios - An iOS app (
IOS_PROJECT=true
)
Edited by Waquid Valiya Peedikakkal