14

We got a TeamCity server which produces nightly deployable builds. We want our beta tester to have access these nightly builds.

What are the best practices to do this? TeamCity Server is not public, it is in our office, so I assume best approach would be pushing artifacts via FTP or something like that.

Also I have no clue how to trigger a script when an artifact created successfully. Does TeamCity provide a way to do that?

dr. evil
  • 26,944
  • 33
  • 131
  • 201

4 Answers4

7

I don't know of a way to trigger a script, but I wouldn't worry about that. You can retrieve artifacts via a URL. Depending on what makes sense for your project, you could have a script set up on a scheduler (cron or Windows Scheduling) that pulls the artifact and sends it to the FTP site for the Beta testers. You can configure it to pull only the latest successful artifact. If you set up the naming right, if the build fails they beta testers won't notice because the new build number just won't be there, no bad builds would be pushed to them.

Yishai
  • 90,445
  • 31
  • 189
  • 263
3

Read the following help page from the documentation. It shows how you send commands from your build script to tell teamCity to publish the artifacts to a given path.

redsquare
  • 78,161
  • 20
  • 151
  • 159
  • 1
    I don't understand this one. The linked help page tells you how to publish artifacts during build, but you can only specify the path _from_ which the artifacts are being published, not the target path. I'm looking for similar things, so I'm really interested in the solution :) – OregonGhost Jul 30 '09 at 08:41
  • 1
    Team City 6 sets the path to: http://confluence.jetbrains.net/display/TCD6/Configuring+General+Settings#ConfiguringGeneralSettings-ArtifactPaths – jwadsack Feb 11 '11 at 20:56
2

In TeamCity 7.0+ you can use Deployer plugin. Installation steps can be found here. It also allows to upload artifacts via SMB and SSH.

Nikita
  • 6,270
  • 2
  • 24
  • 37
0

I suggest you start looking at something like (n)Ant to handle your build process. That way you can handle the entire "build artifacts" -> "publish artifacts" chain in an automated manner. These tools are dependency based, so the artifacts would only be published if the build succeeded.

MPritchard
  • 7,031
  • 7
  • 28
  • 40
  • 2
    Call me crazy -- but what does (n)Ant give you that TeamCity doesn't? – Dan Esparza Aug 24 '12 at 19:10
  • 2
    When this answer was written waaay back in 2009, TC didn't do half the things it does now. However, you will still have much more control over your build & deployment process if you write a build script yourself. What goes in that is down to your personal take on things. It answers the question in so much as it points someone in a direction to investigate further, which is reasonable IMHO. – MPritchard Mar 12 '13 at 13:21