diff --git a/codecov_cli/helpers/ci_adapters/cloudbuild.py b/codecov_cli/helpers/ci_adapters/cloudbuild.py index b030d3c0..0f52a2e2 100644 --- a/codecov_cli/helpers/ci_adapters/cloudbuild.py +++ b/codecov_cli/helpers/ci_adapters/cloudbuild.py @@ -20,6 +20,7 @@ class GoogleCloudBuildAdapter(CIAdapterBase): - 'PROJECT_NUMBER=$PROJECT_NUMBER' - 'REF_NAME=$REF_NAME' - 'REPO_FULL_NAME=$REPO_FULL_NAME' + - 'TRIGGER_NAME=$TRIGGER_NAME' Read more about manual substitution mapping here: https://cloud.google.com/build/docs/configuring-builds/substitute-variable-values#map_substitutions_manually """ @@ -59,7 +60,8 @@ def _get_pull_request_number(self): return pr_num if pr_num != "" else None def _get_job_code(self): - return None + job_code = os.getenv("TRIGGER_NAME") + return job_code if job_code != "" else None def _get_service(self): return "google_cloud_build" diff --git a/tests/ci_adapters/test_cloudbuild.py b/tests/ci_adapters/test_cloudbuild.py index 82a90517..ec4b0889 100644 --- a/tests/ci_adapters/test_cloudbuild.py +++ b/tests/ci_adapters/test_cloudbuild.py @@ -16,6 +16,7 @@ class CloudBuildEnvEnum(str, Enum): PROJECT_NUMBER = "PROJECT_NUMBER" REPO_FULL_NAME = "REPO_FULL_NAME" _PR_NUMBER = "_PR_NUMBER" + TRIGGER_NAME = "TRIGGER_NAME" class TestCloudBuild(object): @@ -160,12 +161,22 @@ def test_commit_sha(self, env_dict, expected, mocker): assert actual == expected - def test_job_code(self): - assert ( - GoogleCloudBuildAdapter().get_fallback_value(FallbackFieldEnum.job_code) - is None + @pytest.mark.parametrize( + "env_dict,expected", + [ + ({}, None), + ({CloudBuildEnvEnum.TRIGGER_NAME: ""}, None), + ({CloudBuildEnvEnum.TRIGGER_NAME: "build-job-name"}, "build-job-name"), + ], + ) + def test_job_code(self, env_dict, expected, mocker): + mocker.patch.dict(os.environ, env_dict) + actual = GoogleCloudBuildAdapter().get_fallback_value( + FallbackFieldEnum.job_code ) + assert actual == expected + @pytest.mark.parametrize( "env_dict,expected", [