diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index 98bdbeacd..3a74185a7 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -3070,6 +3070,10 @@ def xcode(registry, xml_parent, data): (default '') :arg str keychain-unlock: Unlocks the keychain during use. (default false) + :arg str bundle-id: The bundle identifier (App ID) for this provisioning + profile (default '') + :arg str provisioning-profile-uuid: The UUID of the provisioning profile + associated to this bundle identifier. (default '') Example: @@ -3135,6 +3139,22 @@ def xcode(registry, xml_parent, data): ] convert_mapping_to_xml(xcode, data, mapping, fail_required=True) + has_provisioning_profiles = bool(data.get('provisioning-profiles')) + XML.SubElement(xcode, 'manualSigning').text = str( + has_provisioning_profiles or False).lower() + if has_provisioning_profiles: + provisioning_profiles_xml = XML.SubElement( + xcode, 'provisioningProfiles') + mapping = [ + ('bundle-id', 'provisioningProfileAppId', ''), + ('provisioning-profile-uuid', 'provisioningProfileUUID', '') + ] + for provisioning_profile in data.get('provisioning-profiles'): + provisioning_profile_xml = XML.SubElement( + provisioning_profiles_xml, 'au.com.rayh.ProvisioningProfile') + convert_mapping_to_xml(provisioning_profile_xml, + provisioning_profile, mapping, fail_required=True) + def sonatype_clm(registry, xml_parent, data): """yaml: sonatype-clm diff --git a/tests/builders/fixtures/xcode.xml b/tests/builders/fixtures/xcode.xml index 7d987caef..2c7cedd56 100644 --- a/tests/builders/fixtures/xcode.xml +++ b/tests/builders/fixtures/xcode.xml @@ -30,6 +30,7 @@ false + false 849b07cd-ac61-4588-89c8-b6606ee84946 @@ -63,6 +64,17 @@ /Users/jenkins/Library/Keychains/jenkins-uasdk-ios-pre_review testpass true + true + + + foo + bar + + + foo2 + bar2 + + diff --git a/tests/builders/fixtures/xcode.yaml b/tests/builders/fixtures/xcode.yaml index 1ec30c7e9..39333ba7d 100644 --- a/tests/builders/fixtures/xcode.yaml +++ b/tests/builders/fixtures/xcode.yaml @@ -22,3 +22,8 @@ builders: keychain-path: "/Users/jenkins/Library/Keychains/jenkins-uasdk-ios-pre_review" keychain-password: "testpass" keychain-unlock: true + provisioning-profiles: + - bundle-id: foo + provisioning-profile-uuid: bar + - bundle-id: foo2 + provisioning-profile-uuid: bar2