Consegna continua TFS

2

È possibile ottenere la consegna continua utilizzando TFS, ad es. Servizio di Windows? Ci sono > 1000 post su come utilizzare msdeploy con TFS per i progetti WEB.

Sto cercando di capire perché non ci sono risorse come blog, articoli, msdn o best practice per il servizio di consegna continua per Windows tramite TFS.

Non sono sicuro che rimorchi per ottenere quanto segue senza alcun materiale di riferimento operativo. Questo è così frustrante.

  1. Archiviare codebase esistente sul server remoto per il servizio, nonché per il progetto Web non su Integration Server, per favore!

  2. Come interrompere i servizi sul server remoto non sul server di integrazione

  3. Copia nuovo codice base su server remoto

  4. Avvia servizi

posta swapneel 22.11.2012 - 16:01
fonte

3 risposte

2

Msdeploy è la cosa peggiore che tu possa mai fare per te. È molto difficile ottenere le versioni e le configurazioni di IIS in modo che funzioni come previsto. Definitivamente userò qualcosa come 7-zip per comprimere il codice e xcopy per copiarlo e, naturalmente, PowerShell da remoto alla scatola. È quindi possibile gestire IIS utilizzando i comandi di PowerShell. Puoi anche provare alternative come albacore se non ti dispiace imparare il ruby (a mio parere, ruby è molto meglio e object oriented di powershell)

    
risposta data 12.12.2012 - 22:00
fonte
1

Sembra che ci sia una lacuna nell'erogazione e nella distribuzione continue .. Ma ci sono alcuni strumenti che sono davvero potenti e possono colmare il divario!

Ho avuto lo stesso problema un po 'di tempo fa e ho trovato uno strumento straordinario che mi ha salvato la vita, e tutti i membri della mia azienda che hanno dovuto distribuire manualmente la nostra soluzione, ogni rilascio, a tutti i nostri clienti. Questo strumento si chiama Octopus Deploy.

Nel loro sito web descrivono il prodotto come:

Octopus Deploy is a user-friendly release management system for professional .NET developers. It enables automated, frequent, low-risk releases of ASP.NET applications and Windows Services into development, test, staging and production environments.

E lo fa davvero molto bene. Questo è il modo in cui l'abbiamo creato nella mia azienda: Abbiamo un repository Git diviso in tre rami: dev-pre-pro.

Come strumento di integrazione continua utilizziamo Hudson. Ogni volta che Hudson compila uno dei tre rami, genera un pacchetto Nuget (usando OctoPack + MSBuild).

Questi pacchetti possono essere consumati dal nostro sito di amministrazione OctopusDeploy all'interno del nostro dominio. OctopusDeploy sostanzialmente spinge i pacchetti di nuget ai suoi "tentacoli" (servizi installati nelle macchine in cui vogliamo distribuire) ed esegue azioni personalizzate usando PowerShell.

In questo modo, utilizzando gli script PS è possibile copiare la nuovissima soluzione appena compilata nell'ambiente selezionato, avviare / interrompere i servizi prima o dopo aver copiato o addirittura aggiornato il database. Lascia che la tua immaginazione scorra ..

Quindi, dopo aver compilato il progetto nello strumento CI (potrebbe essere fatto utilizzando TFS), possiamo andare al sito di amministrazione di OctopusDeploy ed eseguire un aggiornamento a tutti i nostri ambienti (dev-pre-pro) con soli due clic!

Ps.- Non lavoro per OD, ma penso che sia uno strumento straordinario! ;)

    
risposta data 13.12.2012 - 18:37
fonte
0

Ho deciso di ignorare completamente msdeploy. In gran parte per le stesse ragioni che hai menzionato. Mancanza di documentazione e nessuno sembra averlo usato (con successo).

La mia impressione è che rende solo qualcosa che non è così complicato.

Rimango con i semplici metodi di distribuzione di xcopy. La maggior parte dei servizi come IIS hanno interfacce di gestione di qualità, ho solo script contro quelli.

    
risposta data 12.12.2012 - 21:34
fonte