Skip to content

Instantly share code, notes, and snippets.

@bhameyie
Created May 28, 2013 22:48
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bhameyie/5666748 to your computer and use it in GitHub Desktop.
Save bhameyie/5666748 to your computer and use it in GitHub Desktop.
Nuget with albacore
def readVersion(filepath="AssemblyInfo.cs")
File.open(filepath).each_line{ |line|
if line.start_with?("[assembly: AssemblyVersion(\"")
return line.gsub("[assembly: AssemblyVersion(\"", "").gsub("\")]","").gsub(/\s+/, "")
end
}
end
$version=readVersion
$apikey="myKey"
$outDir = "outputdirectory"
$nuget ="c:\\nuget\\nuget.exe"
def push(nuget,packageId)
nuget.command = $nuget
nuget.package = "#{$outDir}\\#{packageId}.#{$version}.nupkg"
nuget.apikey = $apikey
nuget.source = $nugetServer
nuget.create_only = true
end
def pack(nuget, packageId)
nuget.command = $nuget
nuget.nuspec = "#{packageId}.nuspec"
nuget.base_folder = "myBaseFolder"
nuget.output = $outDir
end
$core="MyCorePackageId"
$server="MyCoreDependentPackageId"
desc "create the Core library package"
nuspec :specCore do |nuspec|
nuspec.id=$core
nuspec.version = $version
nuspec.authors = "Team Awesome"
nuspec.description = "Awesome Core library"
nuspec.title = "Awesome Core"
nuspec.language = "en-US"
nuspec.licenseUrl = "http://me.com/license"
nuspec.projectUrl = "http://me.com"
nuspec.output_file = $core+".nuspec"
nuspec.file "AwesomeProject.Core\\bin\\Release\\*.dll", "lib\\net40"
nuspec.dependency $commonContract, $version
end
desc "create the core packages"
nugetpack :packCore => :specCore do |nuget|
pack(nuget, $core)
end
desc "push the core packages"
nugetpush :pushCore => :packCore do |nuget|
push(nuget, $core)
end
desc "create the Services library package"
nuspec :specServer do |nuspec|
nuspec.id=$server
nuspec.version = $version
nuspec.authors = "Team Awesome"
nuspec.description = "Awesome Service Library"
nuspec.title = "Awesome Services"
nuspec.language = "en-US"
nuspec.licenseUrl = "http://me.com/license"
nuspec.projectUrl = "http://me.com"
nuspec.output_file = $server+".nuspec"
nuspec.file "AwesomeProject.Services\\bin\\Release\\AwesomeProject.Services.dll","lib\\net40"
nuspec.dependency $core, $version
end
desc "create the server packages"
nugetpack :packServer => :specServer do |nuget|
pack(nuget, $server)
end
desc "push the server packages"
nugetpush :pushServer => :packServer do |nuget|
push(nuget, $server)
end
desc "Push the nuget packages"
task :push => [:pushServer, :pushCore]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment