Skip to content

AnthonyCarl/teamcity-nuget-support

 
 

Repository files navigation

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

This plugin will be compatible with TeamCity 7.0 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 is a closed branch. Consider v0.8 for 7.0 compatible builds. Only bugfixes to be added
================

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


Packages

No packages published

Languages

  • Java 92.7%
  • C# 6.9%
  • JavaScript 0.4%