Mercurial > hg > mercurial
annotate mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/VcsRootBuilder.java @ 280:8c1fd2e565ae
Implement mercurial detection on the agents
When agent starts, hg-plugin detects installed hg (searches it in the
$PATH). If plugin is able to run hg and hg has an approrpiate version
(1.5.2+), then plugin reports path to hg in the
'teamcity.hg.agent.path' parameter. This parameter can be used in the
"HG command path" field in a VCS root settings, configurations with
such root will be run only on agents which report path to hg. Also
user can set this parameter manually in the buildAgent.properties.
A server side of plugin first checks value of internal property
'teamcity.hg.server.path' and if property is set, its value is used.
Second, plugin tries to use path from the settings of VCS root: if
path is equal to '%teamcity.hg.agent.path%' - use 'hg' as path,
otherwise use a value from the root. With such order old setups, where
path in the VCS root was used on both server and agent, will continue
to work. New VCS roots with references in the path will also work if
hg is in the $PATH on the server or internal property is set.
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Fri, 19 Aug 2011 15:21:38 +0400 |
parents | 8c10f5cec37d |
children | 33305b2022c2 |
rev | line source |
---|---|
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
1 package jetbrains.buildServer.buildTriggers.vcs.mercurial; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
2 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
3 import jetbrains.buildServer.vcs.impl.VcsRootImpl; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
4 import org.jetbrains.annotations.NotNull; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
5 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
6 import java.io.IOException; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
7 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
8 /** |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
9 * @author dmitry.neverov |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
10 */ |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
11 public class VcsRootBuilder { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
12 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
13 private String myRepository; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
14 private String myUsername; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
15 private String myPassword; |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
16 private String myBranch; |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
17 private long myRootId = 1L; |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
18 private String myHgPath; |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
19 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
20 public VcsRootImpl build() throws IOException { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
21 VcsRootImpl vcsRoot = new VcsRootImpl(1, Constants.VCS_NAME); |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
22 vcsRoot.addProperty(Constants.REPOSITORY_PROP, myRepository); |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
23 vcsRoot.addProperty(Constants.HG_COMMAND_PATH_PROP, myHgPath != null ? myHgPath : Util.getHgPath()); |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
24 vcsRoot.addProperty(Constants.USERNAME, myUsername); |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
25 vcsRoot.addProperty(Constants.PASSWORD, myPassword); |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
26 vcsRoot.addProperty(Constants.BRANCH_NAME_PROP, myBranch); |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
27 return vcsRoot; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
28 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
29 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
30 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
31 public VcsRootBuilder repository(@NotNull String repository) { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
32 myRepository = repository; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
33 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
34 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
35 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
36 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
37 public VcsRootBuilder username(@NotNull String username) { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
38 myUsername = username; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
39 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
40 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
41 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
42 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
43 public VcsRootBuilder password(@NotNull String password) { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
44 myPassword = password; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
45 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
46 } |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
47 |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
48 |
276
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
49 public VcsRootBuilder branch(@NotNull String branch) { |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
50 myBranch = branch; |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
51 return this; |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
52 } |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
53 |
8c10f5cec37d
TW-17797 Fix merge-base calculation
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
275
diff
changeset
|
54 |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
55 public VcsRootBuilder rootId(long rootId) { |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
56 myRootId = rootId; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
57 return this; |
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
58 } |
280
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
59 |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
60 |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
61 public VcsRootBuilder hgPath(String hgPath) { |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
62 myHgPath = hgPath; |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
63 return this; |
8c1fd2e565ae
Implement mercurial detection on the agents
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
276
diff
changeset
|
64 } |
275
13f3e7d0c42c
Implement VersionCommand
Dmitry Neverov <dmitry.neverov@jetbrains.com>
parents:
diff
changeset
|
65 } |