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