Sto provando a fare un'integrazione notturna del pacchetto con uno dei nostri progetti che consuma 6 pacchetti interni -PreRelease di altri team.
Informazioni di background
- Abbiamo il nostro Server ProGet interno che ospita solo i pacchetti della nostra azienda.
- Gli ID pacchetto sono nel formato di: MyCompany.Project.Component
- Abbiamo VS2015 Enterprise ($$), quindi il nostro sistema di build ha solo Strumenti di build di VS 2015 installati.
- Usiamo CruiseControl.NET ( andrà a TFS entro la fine dell'anno )
Il mio script di integrazione (PowerShell) è qualcosa del tipo:
#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
}
Quindi costruisci la soluzione, esegui i test di unità / integrazione, poi controlla i nuovi pacchetti.configs o segnala che ci sono alcune modifiche irrisolte.
Ho pensato di suddividere i pacchetti di MyCompany in una configurazione di pacchetto separata, ma ho pensato che sarebbe stato più saggio avere consigli prima di ristrutturare tutti i repository dei team e implementarli su altri progetti.
Sono nuovo di Release Engineering e ho la sensazione che lo sto rendendo troppo complicato