diff --git a/jenkins_jobs/modules/scm.py b/jenkins_jobs/modules/scm.py index fff5a4f75..59adf91f3 100644 --- a/jenkins_jobs/modules/scm.py +++ b/jenkins_jobs/modules/scm.py @@ -72,6 +72,9 @@ remoteName/\*') :arg bool shallow-clone: Perform shallow clone (default false) :arg bool prune: Prune remote branches (default false) :arg bool clean: Clean after checkout (default false) + + .. deprecated:: 1.1.1. Please use clean extension format. + :arg bool fastpoll: Use fast remote polling (default false) :arg bool disable-submodules: Disable submodules (default false) @@ -111,6 +114,11 @@ remoteName/\*') * **branch** (`string`) - name of the branch to create create changelog against (default 'master') + :arg dict clean: + :clean: + * **after** (`bool`) - Clean the workspace after checkout + * **before** (`bool`) - Clean the workspace before checkout + :arg dict submodule: :submodule: * **disable** (`bool`) - By disabling support for submodules @@ -162,7 +170,6 @@ remoteName/\*') ("recursive-submodules", 'recursiveSubmodules', False), (None, 'doGenerateSubmoduleConfigurations', False), ("use-author", 'authorOrCommitter', False), - ("clean", 'clean', False), ("wipe-workspace", 'wipeOutWorkspace', True), ("prune", 'pruneBranches', False), ("fastpoll", 'remotePoll', False), @@ -279,6 +286,24 @@ remoteName/\*') change_branch = data['changelog-against'].get('branch', 'master') XML.SubElement(opts, 'compareRemote').text = change_remote XML.SubElement(opts, 'compareTarget').text = change_branch + if 'clean' in data: + # Keep support for old format 'clean' configuration by checking + # if 'clean' is boolean. Else we're using the new extensions style. + if isinstance(data['clean'], bool): + clean_after = data['clean'] + clean_before = False + logger.warn("'clean: bool' configuration format is deprecated, " + "please use the extension style format to configure " + "this option.") + else: + clean_after = data['clean'].get('after', False) + clean_before = data['clean'].get('before', False) + if clean_after: + ext_name = 'hudson.plugins.git.extensions.impl.CleanCheckout' + ext = XML.SubElement(exts_node, ext_name) + if clean_before: + ext_name = 'hudson.plugins.git.extensions.impl.CleanBeforeCheckout' + ext = XML.SubElement(exts_node, ext_name) if 'submodule' in data: ext_name = 'hudson.plugins.git.extensions.impl.SubmoduleOption' ext = XML.SubElement(exts_node, ext_name) diff --git a/tests/duplicates/fixtures/allow_duplicates001.xml b/tests/duplicates/fixtures/allow_duplicates001.xml index f2f666875..feaf936c6 100644 --- a/tests/duplicates/fixtures/allow_duplicates001.xml +++ b/tests/duplicates/fixtures/allow_duplicates001.xml @@ -28,7 +28,6 @@ false false false - false true false false diff --git a/tests/duplicates/fixtures/allow_macros001.xml b/tests/duplicates/fixtures/allow_macros001.xml index 9fa9983db..11af850e0 100644 --- a/tests/duplicates/fixtures/allow_macros001.xml +++ b/tests/duplicates/fixtures/allow_macros001.xml @@ -28,7 +28,6 @@ false false false - false true false false diff --git a/tests/duplicates/fixtures/allow_projects001.xml b/tests/duplicates/fixtures/allow_projects001.xml index d515d2356..90dce6c6a 100644 --- a/tests/duplicates/fixtures/allow_projects001.xml +++ b/tests/duplicates/fixtures/allow_projects001.xml @@ -28,7 +28,6 @@ false false false - false true false false diff --git a/tests/duplicates/fixtures/allow_templates001.xml b/tests/duplicates/fixtures/allow_templates001.xml index d515d2356..90dce6c6a 100644 --- a/tests/duplicates/fixtures/allow_templates001.xml +++ b/tests/duplicates/fixtures/allow_templates001.xml @@ -28,7 +28,6 @@ false false false - false true false false diff --git a/tests/duplicates/fixtures/duplicates001.xml b/tests/duplicates/fixtures/duplicates001.xml index cae598f7e..1107ce977 100644 --- a/tests/duplicates/fixtures/duplicates001.xml +++ b/tests/duplicates/fixtures/duplicates001.xml @@ -28,7 +28,6 @@ false false false - false true false false @@ -80,7 +79,6 @@ false false false - false true false false diff --git a/tests/duplicates/fixtures/duplicates002.xml b/tests/duplicates/fixtures/duplicates002.xml index 01faa9307..f2663650b 100644 --- a/tests/duplicates/fixtures/duplicates002.xml +++ b/tests/duplicates/fixtures/duplicates002.xml @@ -28,7 +28,6 @@ false false false - false true false false @@ -80,7 +79,6 @@ false false false - false true false false diff --git a/tests/macros/scm/multi-scms001.xml b/tests/macros/scm/multi-scms001.xml index 84ef8e805..6ab7c8a62 100644 --- a/tests/macros/scm/multi-scms001.xml +++ b/tests/macros/scm/multi-scms001.xml @@ -30,7 +30,6 @@ false false false - false true false false @@ -68,7 +67,6 @@ false false false - false true false false diff --git a/tests/macros/scm/multi-scms002.xml b/tests/macros/scm/multi-scms002.xml index af2b3e79c..149afc336 100644 --- a/tests/macros/scm/multi-scms002.xml +++ b/tests/macros/scm/multi-scms002.xml @@ -42,7 +42,6 @@ false false false - false true false false diff --git a/tests/macros/scm/scm002.xml b/tests/macros/scm/scm002.xml index be1932d3f..d38872e1d 100644 --- a/tests/macros/scm/scm002.xml +++ b/tests/macros/scm/scm002.xml @@ -28,7 +28,6 @@ false false false - false true false false diff --git a/tests/scm/fixtures/git-clean01.xml b/tests/scm/fixtures/git-clean01.xml new file mode 100644 index 000000000..d22263d15 --- /dev/null +++ b/tests/scm/fixtures/git-clean01.xml @@ -0,0 +1,42 @@ + + + + 2 + + + origin + +refs/heads/*:refs/remotes/origin/* + https://github.com/openstack-infra/jenkins-job-builder.git + + + + + ** + + + + + false + false + false + false + true + false + false + Default + + + + + + false + + false + false + + + + + + + diff --git a/tests/scm/fixtures/git-clean01.yaml b/tests/scm/fixtures/git-clean01.yaml new file mode 100644 index 000000000..8c551fa33 --- /dev/null +++ b/tests/scm/fixtures/git-clean01.yaml @@ -0,0 +1,6 @@ +scm: + - git: + url: https://github.com/openstack-infra/jenkins-job-builder.git + clean: + after: true + before: true diff --git a/tests/scm/fixtures/git-ignore-notify01.xml b/tests/scm/fixtures/git-ignore-notify01.xml index 098c0a45d..48ebc27c7 100644 --- a/tests/scm/fixtures/git-ignore-notify01.xml +++ b/tests/scm/fixtures/git-ignore-notify01.xml @@ -20,7 +20,6 @@ false false false - true true false false @@ -35,6 +34,7 @@ false true + diff --git a/tests/scm/fixtures/git-ignore-notify02.xml b/tests/scm/fixtures/git-ignore-notify02.xml index cf7cb864c..6a2944f81 100644 --- a/tests/scm/fixtures/git-ignore-notify02.xml +++ b/tests/scm/fixtures/git-ignore-notify02.xml @@ -20,7 +20,6 @@ false false false - true true false false @@ -35,6 +34,7 @@ false false + diff --git a/tests/scm/fixtures/git-ignore-notify03.xml b/tests/scm/fixtures/git-ignore-notify03.xml index cf7cb864c..6a2944f81 100644 --- a/tests/scm/fixtures/git-ignore-notify03.xml +++ b/tests/scm/fixtures/git-ignore-notify03.xml @@ -20,7 +20,6 @@ false false false - true true false false @@ -35,6 +34,7 @@ false false + diff --git a/tests/scm/fixtures/git-multiple-remotes.xml b/tests/scm/fixtures/git-multiple-remotes.xml index 65831c7fc..d5ac5d40e 100644 --- a/tests/scm/fixtures/git-multiple-remotes.xml +++ b/tests/scm/fixtures/git-multiple-remotes.xml @@ -26,7 +26,6 @@ false false false - false true false false diff --git a/tests/scm/fixtures/git-shallow-clone01.xml b/tests/scm/fixtures/git-shallow-clone01.xml index f3c2044eb..8b9bf77fb 100644 --- a/tests/scm/fixtures/git-shallow-clone01.xml +++ b/tests/scm/fixtures/git-shallow-clone01.xml @@ -21,7 +21,6 @@ false false false - true true false false @@ -36,6 +35,7 @@ true false + diff --git a/tests/scm/fixtures/git-shallow-clone02.xml b/tests/scm/fixtures/git-shallow-clone02.xml index cf7cb864c..6a2944f81 100644 --- a/tests/scm/fixtures/git-shallow-clone02.xml +++ b/tests/scm/fixtures/git-shallow-clone02.xml @@ -20,7 +20,6 @@ false false false - true true false false @@ -35,6 +34,7 @@ false false + diff --git a/tests/scm/fixtures/git-shallow-clone03.xml b/tests/scm/fixtures/git-shallow-clone03.xml index cf7cb864c..6a2944f81 100644 --- a/tests/scm/fixtures/git-shallow-clone03.xml +++ b/tests/scm/fixtures/git-shallow-clone03.xml @@ -20,7 +20,6 @@ false false false - true true false false @@ -35,6 +34,7 @@ false false + diff --git a/tests/scm/fixtures/git-submodule01.xml b/tests/scm/fixtures/git-submodule01.xml index aa481fb6e..08d74338b 100644 --- a/tests/scm/fixtures/git-submodule01.xml +++ b/tests/scm/fixtures/git-submodule01.xml @@ -18,7 +18,6 @@ false false - false true false false diff --git a/tests/scm/fixtures/git001.xml b/tests/scm/fixtures/git001.xml index 3ef61fbc2..3517bf599 100644 --- a/tests/scm/fixtures/git001.xml +++ b/tests/scm/fixtures/git001.xml @@ -23,7 +23,6 @@ false false false - false true false false diff --git a/tests/scm/fixtures/git002.xml b/tests/scm/fixtures/git002.xml index 5e1a6283b..ab1e895bf 100644 --- a/tests/scm/fixtures/git002.xml +++ b/tests/scm/fixtures/git002.xml @@ -23,7 +23,6 @@ false false false - false true false false diff --git a/tests/scm/fixtures/gitlab.xml b/tests/scm/fixtures/gitlab.xml index 9d871cf5a..887ef98c6 100644 --- a/tests/scm/fixtures/gitlab.xml +++ b/tests/scm/fixtures/gitlab.xml @@ -20,7 +20,6 @@ false false false - false true false false diff --git a/tests/scm/fixtures/local-branch001.xml b/tests/scm/fixtures/local-branch001.xml index 838bf46dd..859a26caf 100644 --- a/tests/scm/fixtures/local-branch001.xml +++ b/tests/scm/fixtures/local-branch001.xml @@ -20,7 +20,6 @@ false false false - false true false false diff --git a/tests/scm/fixtures/stash.xml b/tests/scm/fixtures/stash.xml index a50f954ab..ea167e5a8 100644 --- a/tests/scm/fixtures/stash.xml +++ b/tests/scm/fixtures/stash.xml @@ -20,7 +20,6 @@ false false false - false true false false diff --git a/tests/yamlparser/fixtures/complete001.xml b/tests/yamlparser/fixtures/complete001.xml index fd10bed8d..d556b97bf 100644 --- a/tests/yamlparser/fixtures/complete001.xml +++ b/tests/yamlparser/fixtures/complete001.xml @@ -28,7 +28,6 @@ false false false - true true true false @@ -43,6 +42,7 @@ false false + diff --git a/tests/yamlparser/fixtures/scm_remote_deep_bug.xml b/tests/yamlparser/fixtures/scm_remote_deep_bug.xml index 86a4a4b01..05575c407 100644 --- a/tests/yamlparser/fixtures/scm_remote_deep_bug.xml +++ b/tests/yamlparser/fixtures/scm_remote_deep_bug.xml @@ -28,7 +28,6 @@ false false false - false true false false