use of jetbrains.buildServer.vcs.VcsRoot in project teamcity-git by JetBrains.
the class AutoCheckoutTest method git_version_does_not_support_sparse_checkout_default_rules.
public void git_version_does_not_support_sparse_checkout_default_rules() throws IOException, VcsException {
GitVersion gitVersion = GIT_WITH_SPARSE_CHECKOUT.previousVersion();
myVcsSupport = vcsSupportWithFakeGitOfVersion(gitVersion);
VcsRoot vcsRoot = vcsRootWithAgentGitPath(gitVersion.toString());
AgentRunningBuild build = runningBuild().sharedConfigParams(PluginConfigImpl.USE_SPARSE_CHECKOUT, "true").addRoot(vcsRoot).build();
AgentCheckoutAbility canCheckout = myVcsSupport.canCheckout(vcsRoot, CheckoutRules.DEFAULT, build);
then(canCheckout.getCanNotCheckoutReason()).isNull();
}
use of jetbrains.buildServer.vcs.VcsRoot in project teamcity-git by JetBrains.
the class AutoCheckoutTest method should_check_auth_method.
public void should_check_auth_method() throws Exception {
myVcsSupport = vcsSupportWithRealGit();
VcsRoot vcsRoot = vcsRoot().withFetchUrl(getRemoteRepositoryUrl("repo.git")).withAuthMethod(AuthenticationMethod.PRIVATE_KEY_FILE).withAgentGitPath(getGitPath()).build();
AgentCheckoutAbility canCheckout = myVcsSupport.canCheckout(vcsRoot, CheckoutRules.DEFAULT, runningBuild().addRoot(vcsRoot).build());
then(canCheckout.getCanNotCheckoutReason().getType()).isEqualTo(AgentCanNotCheckoutReason.UNKNOWN_REASON_TYPE);
then(canCheckout.getCanNotCheckoutReason().getDetails()).contains("TeamCity doesn't support authentication method 'Private Key' with agent checkout. Please use different authentication method.");
}
use of jetbrains.buildServer.vcs.VcsRoot in project teamcity-git by JetBrains.
the class AutoCheckoutTest method exclude_rules_are_used_without_sparse_checkout.
public void exclude_rules_are_used_without_sparse_checkout() throws IOException, VcsException {
myVcsSupport = vcsSupportWithFakeGitOfVersion(GIT_WITH_SPARSE_CHECKOUT);
VcsRoot vcsRoot = vcsRootWithAgentGitPath();
AgentRunningBuild build = runningBuild().sharedConfigParams(PluginConfigImpl.USE_SPARSE_CHECKOUT, "false").addRootEntry(vcsRoot, "-:dir/q.txt").build();
AgentCheckoutAbility canCheckout = myVcsSupport.canCheckout(vcsRoot, new CheckoutRules("-:dir/q.txt"), build);
then(canCheckout.getCanNotCheckoutReason().getType()).isEqualTo(AgentCanNotCheckoutReason.NOT_SUPPORTED_CHECKOUT_RULES);
then(canCheckout.getCanNotCheckoutReason().getDetails()).contains("Cannot perform sparse checkout using git " + GIT_WITH_SPARSE_CHECKOUT);
}
use of jetbrains.buildServer.vcs.VcsRoot in project teamcity-git by JetBrains.
the class AutoCheckoutTest method should_respect_root_settings_when_checking_multi_root_constraints2.
@TestFor(issues = "TW-49786")
public void should_respect_root_settings_when_checking_multi_root_constraints2() throws Exception {
VcsRoot root1 = vcsRoot().withId(1).withFetchUrl("http://some.org/repo1.git").build();
VcsRoot root2 = vcsRoot().withId(2).withFetchUrl("http://some.org/repo2.git").build();
AgentRunningBuild build = runningBuild().addRootEntry(root1, "+:dir1").addRootEntry(root2, "+:dir2").build();
// both roots require sparse checkout and mapped into the same directory, but the second
// root uses git version which doesn't support sparse checkout; we shouldn't take it into
// account during canCheckout() check for the first root
GitDetector detector = new GitDetector() {
@NotNull
public GitExec getGitPathAndVersion(@NotNull VcsRoot root, @NotNull BuildAgentConfiguration config, @NotNull AgentRunningBuild build) throws VcsException {
if (root.equals(root1)) {
return new GitExec("git1", GIT_WITH_SPARSE_CHECKOUT);
}
if (root.equals(root2)) {
return new GitExec("git2", GIT_WITH_SPARSE_CHECKOUT.previousVersion());
}
throw new VcsException("Unexpected VCS root");
}
@NotNull
@Override
public GitExec getGitPathAndVersion(@NotNull AgentRunningBuild build) throws VcsException {
throw new UnsupportedOperationException();
}
};
myVcsSupport = createVcsSupport(detector);
AgentCheckoutAbility canCheckout1 = myVcsSupport.canCheckout(root1, new CheckoutRules("+:dir1"), build);
AgentCheckoutAbility canCheckout2 = myVcsSupport.canCheckout(root2, new CheckoutRules("+:dir2"), build);
then(canCheckout1.getCanNotCheckoutReason()).isNull();
then(canCheckout2.getCanNotCheckoutReason().getType()).isEqualTo(AgentCanNotCheckoutReason.NOT_SUPPORTED_CHECKOUT_RULES);
then(canCheckout2.getCanNotCheckoutReason().getDetails()).contains("Cannot perform sparse checkout using git " + GIT_WITH_SPARSE_CHECKOUT.previousVersion());
}
use of jetbrains.buildServer.vcs.VcsRoot in project teamcity-git by JetBrains.
the class AutoCheckoutTest method should_check_shared_paths_not_clashing.
public void should_check_shared_paths_not_clashing() throws Exception {
myVcsSupport = vcsSupportWithFakeGitOfVersion(GIT_CLEAN_LEARNED_EXCLUDE);
final VcsRoot vcsRoot = vcsRoot().withFetchUrl("/some/path").withAgentGitPath(getGitPath()).build();
{
final AgentRunningBuild build = runningBuild().sharedConfigParams(PluginConfigImpl.USE_SPARSE_CHECKOUT, "true").addRoot(vcsRoot).addRootEntry(new VcsRootImpl(2, "svn"), "some/path=>.").build();
AgentCheckoutAbility canCheckout = myVcsSupport.canCheckout(vcsRoot, CheckoutRules.DEFAULT, build);
then(canCheckout.getCanNotCheckoutReason().getDetails()).contains("Cannot checkout VCS root", "into the same directory as VCS root");
}
{
final AgentRunningBuild build = runningBuild().sharedConfigParams(PluginConfigImpl.USE_SPARSE_CHECKOUT, "true").addRoot(vcsRoot).addRootEntry(new VcsRootImpl(2, "svn"), ".=>some/path").build();
AgentCheckoutAbility canCheckout = myVcsSupport.canCheckout(vcsRoot, new CheckoutRules(".=>some/path"), build);
then(canCheckout.getCanNotCheckoutReason().getDetails()).contains("Cannot checkout VCS root", "into the same directory as VCS root");
}
}
Aggregations