negy / teamcity-nuget-support

TeamCity NuGet support

Home Page:http://confluence.jetbrains.net/display/TW/NuGet+support

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This is NuGet Support TeamCity plugin, mainly NuGet support for TeamCity.

This plugin will be compatible with TeamCity 7.1 and newer.

As we fully migrated to java-based feed, there will be no .NET Feed implementation.

==== NOTE ======
This version NuGet Support plugin is NOT COMPATIBLE with TeamCity 6.5. Use v0.5-bugfix branch instead.
This version NuGet Support plugin is NOT COMPATIBLE with TeamCity 7.0. Use v0.7 branch instead.
================

Builds of this plugin are found here:
http://teamcity.jetbrains.com/viewType.html?buildTypeId=bt375

For more details, see 
http://confluence.jetbrains.net/display/TW/NuGet+support

License:
========
 Apache 2.0


Building:
=========
- First build .Net part of the plugin:    
     msbuild nuget-extensions/nuget-extensions.sln /t:Rebuild /p:Configuration=Release

- Then build Java part and TeamCity plugin distribution:     
     open the sources in InteliJ IDEA and build artifact plugin-zip


Supported features:

- NuGet packages installer build runner:
    
  Installs packages with help of nuget install command, according to David Ebbo post 
  (http://blog.davidebbo.com/2011/03/using-nuget-without-committing-packages.html)
  allowing to use NuGet without committing packages to version control.

  Updates packages help of nuget update command


- NuGet Dependency Trigger:
  
  Build Trigger that starts a new build if package is updated.   

- NuGet used packages tab

  Reports list of all used packages in build configuration. 
  Available only if NuGet Packages Installer Build Runner is used.

- Build Runner to publish created NuGet packages to NuGet feeds

- TeamCity is able to download and distribute NuGet.Commandline within all build agents

- Build runner to create nuget package

- TeamCity as NuGet feed
  There will be a configuration parameter 'teamcity.nuget.feed.server' added on agent containing NuGet feed URL


API gaps TeamCity:
 - Reuse ComposideBuildProcess and DelegatingBuildProcess
 - Use XmlXppAbstractParser#parse(InputSream)
 - Consider reusing of Maven build trigger/project models
 - Make server-side PluginDescription contain getPluginRoot() to avoid cast to PluginInfo
 - Add CustomDataStorage to BuildTriggerDescriptor
 - Tools server extension: 
   - no way to provide own UI
   - no way to implement custom downloader
   - user may tweak download url to download malicious file instead of expected one => checkes required
 - Add an API to provide pluginData path without use of ServerPaths class and specifying names explicitly
 - Extract interfaces from jetbrains.buildServer.controllers.admin.projects.EditBuildTypeFormFactory#getOrCreateForm to make it available in open API
 - No Ant Path matcher component to convert relative and absolute patterns to list of files.
 - Option for commandline runner to avoid dumping executing commandline  (I need to hide passwords)
 - Directory scanner may be reused

API gaps NuGet:
 - Allow to call nuget.exe with plugins without installing them into %USERPROFILE%
     http://nuget.codeplex.com/workitem/1295
 - Allow to provide authorization for NuGet sources from commandline
     http://nuget.codeplex.com/workitem/1303


About

TeamCity NuGet support

http://confluence.jetbrains.net/display/TW/NuGet+support

License:Apache License 2.0