0
votes

This is my first attempt at setting up a Build Configuration in Team City.

In Subversion all third party binaries are stored in a separate repository called Applications because it is shared.

So on my local machine the path is

D:\Dev\SolutionRoot\WebProjectRoot

which has references to binaries in

D:\Dev\Applications

In Team City I have two build configurations (one to build the project (.sln) and one to just check out the third party binaries).

For the web project build configuration I added an Artifact Dependency which Depends On "Get Third Party Binaries", Gets artifacts from "Last successful build" and Artifact rules:

/*/.=>Applications

The build fails trying to resolve the artifact dependencies.

Build 'Furniture :: Build' #528 
Started 'Thu Aug 09 15:13:50 BST 2012' on 'machine name' by 'Ryan'
Finished 'Thu Aug 09 15:14:09 BST 2012' with status 'FAILURE Artifacts resolving failed'
TeamCity URL http://localhost:8111/viewLog.html?buildId=14&buildTypeId=bt2 
TeamCity server version is 7.1 (build 23907)

[15:13:50]: bt2 (18s)
[15:13:50]: Checking for changes (running for 4m:57s)
[15:13:50]: Publishing internal artifacts
[15:13:50]:  [Publishing internal artifacts] Sending build.start.properties.gz file
[15:13:50]: Clearing temporary directory: C:\TeamCity\buildAgent\temp\buildTmp
[15:13:50]: Clean build enabled: removing old files from C:\TeamCity\buildAgent\work\a3a48aff6a8b3347
[15:13:50]: Checkout directory: C:\TeamCity\buildAgent\work\a3a48aff6a8b3347
[15:13:50]: Updating sources: agent side checkout (18s)
[15:13:50]:  [Updating sources] Will perform clean checkout. Reason: Checkout directory is empty or doesn't exist (running for 4m:56s)
[15:13:50]:  [Updating sources] Cleaning C:\TeamCity\buildAgent\work\a3a48aff6a8b3347
[15:13:50]:  [Updating sources] VCS Root: Furniture (18s)
[15:13:50]:      [VCS Root: Furniture] revision: 528_2012/08/09 12:00:34 +0100
[15:14:09]: Resolving artifact dependencies
[15:14:09]:  [Resolving artifact dependencies] Failed to resolve artifact dependency <Furniture :: Get Third Party Binaries, build #2 [id 10]>: No files matched for patterns "/*/.=>Applications" from <Furniture :: Get Third Party Binaries, build #2 [id 10]> (jetbrains.buildServer.artifacts.ResolvingFailedException)
[15:14:09]:  [Resolving artifact dependencies] Failed to resolve 1 of 1 artifact dependencies
[15:14:09]: Failed to resolve 1 of 1 artifact dependencies
[15:14:09]: Publishing internal artifacts
[15:14:09]:  [Publishing internal artifacts] Sending build.finish.properties.gz file
[15:14:09]: Build failed to start. Artifacts will not be published for this build
[15:14:09]: Build finished

Have I done this correctly?

1

1 Answers

0
votes

I see several problems in your setup.

First of all to introduce artifact dependency you should publish those artifacts in source configuration (in your case - config, which checkout third party libraries).

Then, you should not actually use artifact dependency to just checkout sms. TeamCity support attaching of several VCS roots to the configuration.

So in your case you could have single configuration with two roots attached: root with your sources, root with libs. Also you could use checkout rules to form any checkout directory structure you need.