2222import sys
2323import tempfile
2424import time
25+ from typing import Any
2526
2627import pytz
2728
3132from local .butler import package
3233from src .clusterfuzz ._internal .base import utils
3334from src .clusterfuzz ._internal .config import local_config
35+ from src .clusterfuzz ._internal .metrics import monitoring_metrics
3436from src .clusterfuzz ._internal .system import environment
35- from clusterfuzz ._internal .metrics import monitoring_metrics
36- from typing import Any , Dict
3737
3838EXPECTED_BOT_COUNT_PERCENT = 0.8
3939
@@ -91,6 +91,7 @@ def _additional_app_env_vars(project):
9191 'REDIS_HOST' : _get_redis_ip (project ),
9292 }
9393
94+
9495# TODO: Add structured log
9596def _deploy_app_prod (project ,
9697 deployment_bucket ,
@@ -113,20 +114,22 @@ def _deploy_app_prod(project,
113114
114115 for service in services :
115116 _delete_old_versions (project , service , VERSION_DELETE_WINDOW_MINUTES )
116- releases = [release ]
117- releases += constants .ADDITIONAL_RELEASES if release == 'prod' else []
117+
118118 if package_zip_paths :
119119 for package_zip_path in package_zip_paths :
120120 _deploy_zip (
121121 deployment_bucket , package_zip_path , test_deployment = test_deployment )
122122
123+ releases = [release ]
124+ releases += constants .ADDITIONAL_RELEASES if release == 'prod' else []
123125 for rel in releases :
124- _deploy_manifest (
126+ _deploy_manifest (
125127 deployment_bucket ,
126128 constants .PACKAGE_TARGET_MANIFEST_PATH ,
127129 test_deployment = test_deployment ,
128130 release = rel )
129131
132+
130133def _deploy_app_staging (project , yaml_paths ):
131134 """Deploy app in staging."""
132135 services = _get_services (yaml_paths )
@@ -431,11 +434,12 @@ def _prod_deployment_helper(config_dir,
431434 'deploy_app_engine' : deploy_appengine ,
432435 'deploy_kubernetes' : deploy_k8s ,
433436 'success' : True ,
434- 'release' : release
435- }
436-
437+ 'release' : release ,
438+ 'clusterfuzz_version' : utils .current_source_version ()
439+ }
440+
437441 try :
438- deployments_success = _deploy_app_prod (
442+ _deploy_app_prod (
439443 project ,
440444 deployment_bucket ,
441445 yaml_paths ,
@@ -451,15 +455,16 @@ def _prod_deployment_helper(config_dir,
451455 if deploy_k8s :
452456 _deploy_terraform (config_dir )
453457 _deploy_k8s (config_dir )
454-
455- print (f'Production deployment finished. { labels } , { deployments_success } ' )
458+
459+ print (f'Production deployment finished. { labels } ' )
456460 labels .update ({'success' : True })
457461 monitoring_metrics .PRODUCTION_DEPLOYMENT .increment (labels )
458462 except Exception as ex :
459463 labels .update ({'success' : False })
460464 monitoring_metrics .PRODUCTION_DEPLOYMENT .increment (labels )
461465 raise ex
462466
467+
463468def _deploy_terraform (config_dir ):
464469 """Deploys GKE cluster via terraform."""
465470 terraform_dir = os .path .join (config_dir , 'terraform' )
0 commit comments