From 3caff2f7ca95de32017b454b9f4a798701169e15 Mon Sep 17 00:00:00 2001 From: Yolande Amate Date: Tue, 13 Jun 2017 23:20:22 +0100 Subject: [PATCH] Update artifact_resolver to make use of convert_mapping_to_xml() Update tests for minimal and full types and update docs with default and required options. Change-Id: If9aaa35e2d7943b6a49f976db83d9f6cae82005b Co-Authored-By: Thanh Ha Signed-off-by: Thanh Ha --- jenkins_jobs/modules/builders.py | 72 +++++++++++-------- ...esolver.xml => artifact-resolver-full.xml} | 36 +++++----- ...olver.yaml => artifact-resolver-full.yaml} | 0 .../fixtures/artifact-resolver-minimal.xml | 24 +++++++ .../fixtures/artifact-resolver-minimal.yaml | 7 ++ 5 files changed, 90 insertions(+), 49 deletions(-) rename tests/builders/fixtures/{artifact-resolver.xml => artifact-resolver-full.xml} (100%) rename tests/builders/fixtures/{artifact-resolver.yaml => artifact-resolver-full.yaml} (100%) create mode 100644 tests/builders/fixtures/artifact-resolver-minimal.xml create mode 100644 tests/builders/fixtures/artifact-resolver-minimal.yaml diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index 300f1e6c4..8c0ed88fd 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -973,51 +973,61 @@ def artifact_resolver(registry, xml_parent, data): :arg bool fail-on-error: Whether to fail the build on error (default false) :arg bool repository-logging: Enable repository logging (default false) - :arg str target-directory: Where to resolve artifacts to + :arg str target-directory: Where to resolve artifacts to (required) :arg list artifacts: list of artifacts to resolve :Artifact: - * **group-id** (`str`) -- Group ID of the artifact - * **artifact-id** (`str`) -- Artifact ID of the artifact - * **version** (`str`) -- Version of the artifact + * **group-id** (`str`) -- Group ID of the artifact (required) + * **artifact-id** (`str`) -- Artifact ID of the artifact (required) + * **version** (`str`) -- Version of the artifact (required) * **classifier** (`str`) -- Classifier of the artifact (default '') * **extension** (`str`) -- Extension of the artifact (default 'jar') * **target-file-name** (`str`) -- What to name the artifact (default '') - Example: + Minimal Example: - .. literalinclude:: ../../tests/builders/fixtures/artifact-resolver.yaml + .. literalinclude:: + ../../tests/builders/fixtures/artifact-resolver-minimal.yaml + :language: yaml + + Full Example: + + .. literalinclude:: + ../../tests/builders/fixtures/artifact-resolver-full.yaml :language: yaml """ - ar = XML.SubElement(xml_parent, - 'org.jvnet.hudson.plugins.repositoryconnector.' - 'ArtifactResolver') - XML.SubElement(ar, 'targetDirectory').text = data['target-directory'] - artifacttop = XML.SubElement(ar, 'artifacts') + ar = XML.SubElement( + xml_parent, + 'org.jvnet.hudson.plugins.repositoryconnector.ArtifactResolver') + mapping = [ + ('target-directory', 'targetDirectory', None), + ('fail-on-error', 'failOnError', False), + ('repository-logging', 'enableRepoLogging', False), + ('', 'snapshotUpdatePolicy', 'never'), + ('', 'releaseUpdatePolicy', 'never'), + ('', 'snapshotChecksumPolicy', 'warn'), + ('', 'releaseChecksumPolicy', 'warn'), + ] + convert_mapping_to_xml(ar, data, mapping, fail_required=True) + + artifact_top = XML.SubElement(ar, 'artifacts') artifacts = data['artifacts'] + artifacts_mapping = [ + ('group-id', 'groupId', None), + ('artifact-id', 'artifactId', None), + ('version', 'version', None), + ('classifier', 'classifier', ''), + ('extension', 'extension', 'jar'), + ('target-file-name', 'targetFileName', ''), + ] for artifact in artifacts: - rcartifact = XML.SubElement(artifacttop, - 'org.jvnet.hudson.plugins.' - 'repositoryconnector.Artifact') - XML.SubElement(rcartifact, 'groupId').text = artifact['group-id'] - XML.SubElement(rcartifact, 'artifactId').text = artifact['artifact-id'] - XML.SubElement(rcartifact, 'classifier').text = artifact.get( - 'classifier', '') - XML.SubElement(rcartifact, 'version').text = artifact['version'] - XML.SubElement(rcartifact, 'extension').text = artifact.get( - 'extension', 'jar') - XML.SubElement(rcartifact, 'targetFileName').text = artifact.get( - 'target-file-name', '') - XML.SubElement(ar, 'failOnError').text = str(data.get( - 'fail-on-error', False)).lower() - XML.SubElement(ar, 'enableRepoLogging').text = str(data.get( - 'repository-logging', False)).lower() - XML.SubElement(ar, 'snapshotUpdatePolicy').text = 'never' - XML.SubElement(ar, 'releaseUpdatePolicy').text = 'never' - XML.SubElement(ar, 'snapshotChecksumPolicy').text = 'warn' - XML.SubElement(ar, 'releaseChecksumPolicy').text = 'warn' + rcartifact = XML.SubElement( + artifact_top, + 'org.jvnet.hudson.plugins.repositoryconnector.Artifact') + convert_mapping_to_xml( + rcartifact, artifact, artifacts_mapping, fail_required=True) def doxygen(registry, xml_parent, data): diff --git a/tests/builders/fixtures/artifact-resolver.xml b/tests/builders/fixtures/artifact-resolver-full.xml similarity index 100% rename from tests/builders/fixtures/artifact-resolver.xml rename to tests/builders/fixtures/artifact-resolver-full.xml index b1900ad30..e92e62387 100644 --- a/tests/builders/fixtures/artifact-resolver.xml +++ b/tests/builders/fixtures/artifact-resolver-full.xml @@ -3,30 +3,30 @@ foo - - - commons-logging - commons-logging - src - 1.1 - jar - comm-log.jar - - - commons-lang - commons-lang - - 1.2 - jar - - - true true never never warn warn + + + commons-logging + commons-logging + 1.1 + src + jar + comm-log.jar + + + commons-lang + commons-lang + 1.2 + + jar + + + diff --git a/tests/builders/fixtures/artifact-resolver.yaml b/tests/builders/fixtures/artifact-resolver-full.yaml similarity index 100% rename from tests/builders/fixtures/artifact-resolver.yaml rename to tests/builders/fixtures/artifact-resolver-full.yaml diff --git a/tests/builders/fixtures/artifact-resolver-minimal.xml b/tests/builders/fixtures/artifact-resolver-minimal.xml new file mode 100644 index 000000000..12b04e476 --- /dev/null +++ b/tests/builders/fixtures/artifact-resolver-minimal.xml @@ -0,0 +1,24 @@ + + + + + foo + false + false + never + never + warn + warn + + + commons-logging + commons-logging + 1.1 + + jar + + + + + + diff --git a/tests/builders/fixtures/artifact-resolver-minimal.yaml b/tests/builders/fixtures/artifact-resolver-minimal.yaml new file mode 100644 index 000000000..7a5a4a110 --- /dev/null +++ b/tests/builders/fixtures/artifact-resolver-minimal.yaml @@ -0,0 +1,7 @@ +builders: + - artifact-resolver: + target-directory: foo + artifacts: + - group-id: commons-logging + artifact-id: commons-logging + version: "1.1"