Not understanding artifacts

Hi,

I'm pretty new to TeamCity and I'm not able to get the build artifacts to publish the way I want. I just installed TeamCity 4.5 (had 4.0.2 installed for a few days and upgraded today when I saw the new release).

My project is building fine. I'm using the Visual Studio 2008 solution runner, which I have pointed to some customized MSBuild files. The MSBuild files are all placing their output (DLL's) in a Deploy\bin folder in the root of the checkout directory. I installed TeamCity with the all the default locations, but for the project I setup I have the Build Checkout directory set as D:\Source\Project Name. Basically, I want to keep the source and build artifacts on the D: drive while TeamCity itself is installed in the default location on C:. So after my build runs I have a directory structure like this:

D:
  \Source
    \Project Name
           \Project source folders
      \Deploy

And I want to publish the build artifacts to a directory structure like this:

D:
  \Builds
    \Project Name
      \Build Number

I have my atrifact paths configuration setting like this: .\Deploy => D:\Builds\%system.build.number%
Which, according to how I understand the documentation should publish the Deploy folder from the Build Checkout directory to the path I have as the target. But it doesn't work. I get errors in the log like this:
[Publishing artifacts] Failed to upload build artifact due to error: java.io.FileNotFoundException: C:\TeamCity\.BuildServer\system\artifacts\Project Name\Build Configuration Name\24\D:\Builds\24_71408\bin\PolicyObjectModel.dll (The filename, directory name, or volume label syntax is incorrect)

The documentation indicates that you can use absolute paths in the artifact paths, like I've done, but it doesn't seem to be respecting that. What am I not understanding here? Can artifacts only be published to the default artifact directory hierarchy? Thanks for any help you can provide.

Kevin

2 comments
Comment actions Permalink

Usualy artifacts are published to TeamCity and stored in the .BuildServer/system/artifacts directory.You cannot use absolute path as the right part of the artifact publishing rule. Absolute path can be used for the left part only.

Could you please explain why do you want to create sepearate artifacts storage? Why not use storage provided by TeamCity? Anyway, TeamCity artifacts publisher can only publish artifacts to TeamCity server, so if you need separate storage, you will have to write your own scripts/tasks to copy artifacts.

0
Comment actions Permalink

Thanks for confirming that absolute paths can not be used in the right part of the artifacts rule. The reason I wanted to do that is simply to keep the build artifacts on a separate drive from the main system drive where TeamCity is installed, and also to simplify the path on the file system. I reinstalled TeamCity and changed the build configuration directory when it asked me in the setup program to be on the D: drive (I had to reinstall anyway for a different reason). So that solves the problem of which drive the artifacts are stored on, but still doesn't let me customize it quite as much as I would like. But that part is not a big deal. I will probably just create a Windows share to simply the path to the artifacts directory. Thanks.

Kevin

0

Please sign in to leave a comment.