Added support for Git shallow clone parameter
Change-Id: Ia0251f25ff22fff10fe53ba6bf54f0e9072210fd
This commit is contained in:
parent
894c72efcf
commit
f9cdbfd4d3
@ -66,6 +66,7 @@ def git(self, xml_parent, data):
|
||||
:arg str basedir: location relative to the workspace root to clone to
|
||||
(default: workspace)
|
||||
:arg bool skip-tag: Skip tagging
|
||||
:arg bool shallow-clone: Perform shallow clone
|
||||
:arg bool prune: Prune remote branches
|
||||
:arg bool clean: Clean after checkout
|
||||
:arg bool fastpoll: Use fast remote polling
|
||||
@ -131,6 +132,7 @@ def git(self, xml_parent, data):
|
||||
("git-config-email", 'gitConfigEmail', ''),
|
||||
('skip-tag', 'skipTag', False),
|
||||
('scm-name', 'scmName', ''),
|
||||
("shallow-clone", "useShallowClone", False),
|
||||
]
|
||||
|
||||
choosing_strategies = {
|
||||
|
0
tests/scm/__init__.py
Normal file
0
tests/scm/__init__.py
Normal file
37
tests/scm/fixtures/git-shallow-clone01.xml
Normal file
37
tests/scm/fixtures/git-shallow-clone01.xml
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project>
|
||||
<scm class="hudson.plugins.git.GitSCM">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<name>origin</name>
|
||||
<refspec>+refs/heads/*:refs/remotes/origin/*</refspec>
|
||||
<url>https://github.com/openstack-infra/jenkins-job-builder.git</url>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>master</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<excludedUsers/>
|
||||
<buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
|
||||
<disableSubmodules>false</disableSubmodules>
|
||||
<recursiveSubmodules>false</recursiveSubmodules>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<authorOrCommitter>false</authorOrCommitter>
|
||||
<clean>true</clean>
|
||||
<wipeOutWorkspace>true</wipeOutWorkspace>
|
||||
<pruneBranches>false</pruneBranches>
|
||||
<remotePoll>false</remotePoll>
|
||||
<gitTool>Default</gitTool>
|
||||
<submoduleCfg class="list"/>
|
||||
<relativeTargetDir/>
|
||||
<reference/>
|
||||
<gitConfigName/>
|
||||
<gitConfigEmail/>
|
||||
<skipTag>false</skipTag>
|
||||
<scmName/>
|
||||
<useShallowClone>true</useShallowClone>
|
||||
</scm>
|
||||
</project>
|
8
tests/scm/fixtures/git-shallow-clone01.yaml
Normal file
8
tests/scm/fixtures/git-shallow-clone01.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
# vim: sw=4 ts=4 et
|
||||
scm:
|
||||
- git:
|
||||
url: https://github.com/openstack-infra/jenkins-job-builder.git
|
||||
branches:
|
||||
- master
|
||||
clean: true
|
||||
shallow-clone: true
|
37
tests/scm/fixtures/git-shallow-clone02.xml
Normal file
37
tests/scm/fixtures/git-shallow-clone02.xml
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project>
|
||||
<scm class="hudson.plugins.git.GitSCM">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<name>origin</name>
|
||||
<refspec>+refs/heads/*:refs/remotes/origin/*</refspec>
|
||||
<url>https://github.com/openstack-infra/jenkins-job-builder.git</url>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>master</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<excludedUsers/>
|
||||
<buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
|
||||
<disableSubmodules>false</disableSubmodules>
|
||||
<recursiveSubmodules>false</recursiveSubmodules>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<authorOrCommitter>false</authorOrCommitter>
|
||||
<clean>true</clean>
|
||||
<wipeOutWorkspace>true</wipeOutWorkspace>
|
||||
<pruneBranches>false</pruneBranches>
|
||||
<remotePoll>false</remotePoll>
|
||||
<gitTool>Default</gitTool>
|
||||
<submoduleCfg class="list"/>
|
||||
<relativeTargetDir/>
|
||||
<reference/>
|
||||
<gitConfigName/>
|
||||
<gitConfigEmail/>
|
||||
<skipTag>false</skipTag>
|
||||
<scmName/>
|
||||
<useShallowClone>false</useShallowClone>
|
||||
</scm>
|
||||
</project>
|
8
tests/scm/fixtures/git-shallow-clone02.yaml
Normal file
8
tests/scm/fixtures/git-shallow-clone02.yaml
Normal file
@ -0,0 +1,8 @@
|
||||
# vim: sw=4 ts=4 et
|
||||
scm:
|
||||
- git:
|
||||
url: https://github.com/openstack-infra/jenkins-job-builder.git
|
||||
branches:
|
||||
- master
|
||||
clean: true
|
||||
shallow-clone: false
|
37
tests/scm/fixtures/git-shallow-clone03.xml
Normal file
37
tests/scm/fixtures/git-shallow-clone03.xml
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" ?>
|
||||
<project>
|
||||
<scm class="hudson.plugins.git.GitSCM">
|
||||
<configVersion>2</configVersion>
|
||||
<userRemoteConfigs>
|
||||
<hudson.plugins.git.UserRemoteConfig>
|
||||
<name>origin</name>
|
||||
<refspec>+refs/heads/*:refs/remotes/origin/*</refspec>
|
||||
<url>https://github.com/openstack-infra/jenkins-job-builder.git</url>
|
||||
</hudson.plugins.git.UserRemoteConfig>
|
||||
</userRemoteConfigs>
|
||||
<branches>
|
||||
<hudson.plugins.git.BranchSpec>
|
||||
<name>master</name>
|
||||
</hudson.plugins.git.BranchSpec>
|
||||
</branches>
|
||||
<excludedUsers/>
|
||||
<buildChooser class="hudson.plugins.git.util.DefaultBuildChooser"/>
|
||||
<disableSubmodules>false</disableSubmodules>
|
||||
<recursiveSubmodules>false</recursiveSubmodules>
|
||||
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
|
||||
<authorOrCommitter>false</authorOrCommitter>
|
||||
<clean>true</clean>
|
||||
<wipeOutWorkspace>true</wipeOutWorkspace>
|
||||
<pruneBranches>false</pruneBranches>
|
||||
<remotePoll>false</remotePoll>
|
||||
<gitTool>Default</gitTool>
|
||||
<submoduleCfg class="list"/>
|
||||
<relativeTargetDir/>
|
||||
<reference/>
|
||||
<gitConfigName/>
|
||||
<gitConfigEmail/>
|
||||
<skipTag>false</skipTag>
|
||||
<scmName/>
|
||||
<useShallowClone>false</useShallowClone>
|
||||
</scm>
|
||||
</project>
|
7
tests/scm/fixtures/git-shallow-clone03.yaml
Normal file
7
tests/scm/fixtures/git-shallow-clone03.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
# vim: sw=4 ts=4 et
|
||||
scm:
|
||||
- git:
|
||||
url: https://github.com/openstack-infra/jenkins-job-builder.git
|
||||
branches:
|
||||
- master
|
||||
clean: true
|
30
tests/scm/test_scm.py
Normal file
30
tests/scm/test_scm.py
Normal file
@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Joint copyright:
|
||||
# - Copyright 2012,2013 Wikimedia Foundation
|
||||
# - Copyright 2012,2013 Antoine "hashar" Musso
|
||||
# - Copyright 2013 Arnaud Fabre
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import os
|
||||
from testscenarios.testcase import TestWithScenarios
|
||||
from testtools import TestCase
|
||||
from jenkins_jobs.modules import scm
|
||||
from tests.base import get_scenarios, BaseTestCase
|
||||
|
||||
|
||||
class TestCaseModuleScm(TestWithScenarios, TestCase, BaseTestCase):
|
||||
fixtures_path = os.path.join(os.path.dirname(__file__), 'fixtures')
|
||||
scenarios = get_scenarios(fixtures_path)
|
||||
klass = scm.SCM
|
Loading…
Reference in New Issue
Block a user