Latest news for sildenafil citrate voltammetry
Last time we talked about using to build . NET projects. Start there if you're curious, or if you missed that episode. I'll wait. I've recently been helping out a colleague to get his build server up and running for his new project. It has been a major pain. The source code repository is TFS, the build automation tool is MSBuild, sildenafil citrate voltammetry and the CI server is Cruise Control . NET. While these three are all [sildenafil citrate voltammetry] decoupled from each other (TFS/TeamBuild sildenafil citrate voltammetry, does really like MSBuild, however), its a bit of a pain to configure all of the XML, get plugins in the right place, etc. to get everything to work just right. I've been there, done that myself several times, its doable, but not always the easiest thing to do. Installing is a breeze, except there is an issue with the latest release when trying to run it on Windows. So instead of downloading it from the website, I would suggest pulling the repository with git, and using that version instead. First, install . Then you can execute the following command in your console
The rest of the steps are pretty simple and straightforward:git clone git://rubyforge. org/cruisecontrolrb. git
That will start up the builder and the dashboard. The dashboard, by default will live on port 3333, so browse to to view your dashboard. The path you use above should point to the directory where your RAKE file lives, that will make it easiest for CruiseControl. rb to get it right. It's pretty dead-simple to configure your project's builder too, you get sample configuration by default in your %USERDIR%/. cruise/projects/projectname/cruise_config. rb that you can modify however you want. Here is what that sample looks like:cruise add projectname -ucruise start
# Project-specific configuration for CruiseControl. rb Project. configure do |project| # Send email notifications about broken and fixed builds to email1@your. site, email2@your. Sildenafil citrate voltammetry site (default: send to nobody) # project. email_notifier. emails = ['email1@your. site', 'email2@your. site'] # Set email 'from' field to john@doe. com: # project. email_notifier. from = 'john@doe. com' # Build the project by invoking rake task 'custom' # project. rake_task = 'custom' # Build the project by invoking shell script "build_my_app. sh". Keep in mind that when the script is invoked, # current working directory is [cruise data]/projects/your_project/work, so if you do not keep build_my_app. sh # in version control, it should be '. . /build_my_app. sh' instead # project. build_command = 'build_my_app. sh' # Ping Subversion for new revisions every 5 minutes (default: 30 seconds) # project. scheduler. polling_interval = 5. minutes endSince it is just ruby code, I find that much more appealing than a big nasty XML configuration file, but I guess that's just my opinion.
Hooking it up to TFSI live in a TFS world at the office, so I have to play by those rules. But I learned from that ". . . rules of a computer system. . . can be bent. Others can be broken. " I'm just bending them. The provides this rule bending behavior, by letting your subversion clients talk to your TFS repository, thereby allowing CruiseControl. rb to poll against what it thinks is a Subversion repository, but is actually a TFS repository. It's really simple to checkout your TFS repository against it using your favorite SVN repository, so I won't go into it here.
Build OutputsThe one thing I wanted to make super simple was putting things in the right place for build outputs. Turns out this is fairly simple after a few minutes with the docs. CruiseControl. rb sets an environment variable telling you where to put things. I abstracted a getter over top of it, so I can conditionally pick a different output location if I'm not inside of a CruiseControl. rb build. It looks like this:
def output_dir if ENV. keys. include?('CC_BUILD_ARTIFACTS') return ENV['CC_BUILD_ARTIFACTS'] else return 'results' end endAs mentioned last time, you can see the latest version of the full RakeFile mentioned above here: I'm feeling some serious CI/Build Automation bliss, hopefully this will get you on your way there too!