1

I am trying to do a nightly package integration with one of our projects that consumes 6 other internal teams’ -PreRelease packages.

Background Info

  • We have our own internal ProGet Server that hosts only our company packages.
  • Package IDs are in the format of: MyCompany.Project.Component
  • We have VS2015 Enterprise ($$), so our build system only has the VS 2015 Build tools installed.
  • We use CruiseControl.NET ( will be going to TFS later this year )

My integration script ( Powershell ) is something like:

#Restores all the packages 1st
nuget restore ( Get-ChildItem $Dir -filter *.sln –Recurse ).FullName 

#Gets all the packages.configs
foreach ( $PackageFile in (Get-ChildItem $RepoDir -filter packages.config -Recurse).FullName )) 
{ 
    #Gets all the packages
    nuget list $PackageFile  

    #Filters my companies packages
    | Select-String -Pattern 'MyCompany.*' –AllMatches 

    #Removes package version and only gets the package ID
    | % { [regex]::Split($_, " ")[0] } 

    #Updates the packages
    | Start-Process nuget -ArgumentList "update $PackageFile -ID $_ -Source MyCompnySrc’s –Prerelease –verbosity detailed" -Wait –NoNewWindow
}

Then build the solution, execute unit/integration tests then either check in the new package.configs or report there are some breaking changes.

I thought about splitting MyCompany’s packages into a separate package config but thought it would be wiser to get advice before restructuring all the teams repo’s, and implementing this on other projects.

I am new to Release Engineering and have that feeling I am making this too complicated

gnat
  • 20,543
  • 29
  • 115
  • 306

0 Answers0