diff --git a/jenkins_jobs/modules/wrappers.py b/jenkins_jobs/modules/wrappers.py index d07b25e09..712d5eddb 100644 --- a/jenkins_jobs/modules/wrappers.py +++ b/jenkins_jobs/modules/wrappers.py @@ -1857,6 +1857,24 @@ def credentials_binding(registry, xml_parent, data): * **secret-key** (`str`) Environment variable for the access secret key (Required for binding-type amazon-web-services) + * **key-file-variable** (`str`) Environment variable + to be set to the temporary path of the SSH key + file during the build. + * **username-variable** (`str`) Environment variable + to be set to the username during + the build. (optional) + * **passphrase-variable** (`str`) Environment + variable to be set to the password + during the build. (optional) + * **keystore-variable** (`str`) Environment + variable to be set to the temporary + keystore location during the build. + * **password-variable** (`str`) Environment + variable to be set to the password + during the build. + * **alias-variable** (`str`) Environment variable + to be set to the keystore alias name + of the certificate during the build. Example: @@ -1888,7 +1906,16 @@ def credentials_binding(registry, xml_parent, data): 'text': 'org.jenkinsci.plugins.credentialsbinding.impl.StringBinding', 'amazon-web-services': 'com.cloudbees.jenkins.plugins.awscredentials' - '.AmazonWebServicesCredentialsBinding' + '.AmazonWebServicesCredentialsBinding', + 'ssh-user-private-key': + 'org.jenkinsci.plugins.credentialsbinding' + '.impl.SSHUserPrivateKeyBinding', + 'docker-server-creds-binding': + 'org.jenkinsci.plugins.docker.commons' + '.credentials.DockerServerCredentialsBinding', + 'cert-multi-binding': + 'org.jenkinsci.plugins.credentialsbinding' + '.impl.CertificateMultiBinding' } for binding in data: for binding_type, params in binding.items(): @@ -1912,6 +1939,22 @@ def credentials_binding(registry, xml_parent, data): ] helpers.convert_mapping_to_xml( binding_xml, params, mapping, fail_required=True) + elif binding_type == 'ssh-user-private-key': + mapping = [ + ('key-file-variable', 'keyFileVariable', None), + ('username-variable', 'usernameVariable', ''), + ('passphrase-variable', 'passphraseVariable', ''), + ] + helpers.convert_mapping_to_xml( + binding_xml, params, mapping, fail_required=True) + elif binding_type == 'cert-multi-binding': + mapping = [ + ('keystore-variable', 'keystoreVariable', None), + ('password-variable', 'passwordVariable', None), + ('alias-variable', 'aliasVariable', None), + ] + helpers.convert_mapping_to_xml( + binding_xml, params, mapping, fail_required=True) else: mapping = [ ('variable', 'variable', None), diff --git a/tests/wrappers/fixtures/credentials_binding.xml b/tests/wrappers/fixtures/credentials_binding.xml index 2e4c3bf16..580047c1d 100644 --- a/tests/wrappers/fixtures/credentials_binding.xml +++ b/tests/wrappers/fixtures/credentials_binding.xml @@ -19,16 +19,32 @@ config_text b3e6f337-5d44-4f57-921c-1632d796caad + + config_docker_server + b3e6f337-5d44-4f57-921c-1632d796caae + myUsername myPassword - b3e6f337-5d44-4f57-921c-1632d796caae + b3e6f337-5d44-4f57-921c-1632d796caag AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY b3e6f337-5d44-4f57-921c-1632d796caaf + + KEY_FILE_VARIABLE + USER_NAME_VARIABLE + PASSPHRASE_VARIABLE + b3e6f337-5d44-4f57-921c-1632d796caah + + + KEYSTORE_VARIABLE + PASSWORD_VARIABLE + ALIAS_VARIABLE + b3e6f337-5d44-4f57-921c-1632d796caaj + diff --git a/tests/wrappers/fixtures/credentials_binding.yaml b/tests/wrappers/fixtures/credentials_binding.yaml index 651ef034a..45f9a17b4 100644 --- a/tests/wrappers/fixtures/credentials_binding.yaml +++ b/tests/wrappers/fixtures/credentials_binding.yaml @@ -12,9 +12,12 @@ wrappers: - text: credential-id: b3e6f337-5d44-4f57-921c-1632d796caad variable: config_text + - docker-server-creds-binding: + credential-id: b3e6f337-5d44-4f57-921c-1632d796caae + variable: config_docker_server - credentials-binding: - username-password-separated: - credential-id: b3e6f337-5d44-4f57-921c-1632d796caae + credential-id: b3e6f337-5d44-4f57-921c-1632d796caag username: myUsername password: myPassword - credentials-binding: @@ -22,3 +25,15 @@ wrappers: credential-id: b3e6f337-5d44-4f57-921c-1632d796caaf access-key: AWS_ACCESS_KEY_ID secret-key: AWS_SECRET_ACCESS_KEY + - credentials-binding: + - ssh-user-private-key: + credential-id: b3e6f337-5d44-4f57-921c-1632d796caah + key-file-variable: KEY_FILE_VARIABLE + username-variable: USER_NAME_VARIABLE + passphrase-variable: PASSPHRASE_VARIABLE + - credentials-binding: + - cert-multi-binding: + credential-id: b3e6f337-5d44-4f57-921c-1632d796caaj + keystore-variable: KEYSTORE_VARIABLE + password-variable: PASSWORD_VARIABLE + alias-variable: ALIAS_VARIABLE