Team Services: Jenkins crea il server

0

Attualmente nella nostra azienda utilizziamo i servizi di squadra nel cloud con un singolo agente di build auto-ospitato che viene eseguito localmente su un server nel nostro ufficio.

Mentre ci stiamo espandendo e stiamo assumendo più lavoro, c'è un aumento nel numero di build accodate. Di conseguenza, stiamo considerando l'aggiunta di ulteriori build build per far fronte al carico.

Sfortunatamente aggiungere agenti aggiuntivi costa denaro e spesso è difficile per noi giustificare il costo. Essenzialmente sono interessato a sapere se ci sono alternative gratuite all'agente di creazione di TFS. Sto ancora cercando di mantenere i Team Services ma in qualche modo integrare le build a livello locale gratuitamente.

Un mio collega ha menzionato Jenkins come server di build, ma ho poca esperienza con questa applicazione e non sono sicuro che un agente sia ancora richiesto dal punto di vista del Team Service.

Ti sarei grato se potesse farmi sapere se ti trovi in una situazione simile e quali sono le tue opinioni o la tua soluzione.

    
posta heymega 04.10.2016 - 18:14
fonte

2 risposte

1

Bene, ho usato Jenkins da molto tempo, ma il nostro negozio è un negozio Java. Se stai usando TFS, probabilmente stai usando lo stack Microsoft. Finché c'è un compilatore a riga di comando disponibile puoi usare Jenkins.

Jenkins home turf sta costruendo codice Java (recuperato da Git, SVN o CVS) e salvando i risultati compilati in un repository Nexus. Tuttavia è facile creare lavori senza componente Java. Un lavoro è semplicemente uno script da riga di comando. Se hai familiarità con Linux, è come avere i cron jobs con un'interfaccia di gestione capace in cima. È possibile impostare facilmente un lavoro Jenkins che raccolga una serie di parametri sullo schermo, quindi esegue lo script con i parametri raccolti. Alcune delle attività che usiamo per Jenkins sono:

  • Compilare e rilasciare il codice Java
  • Assemblare e rilasciare codice di processo batch (file .zip) che spesso non ha alcun componente Java.
  • Distribuzione del codice in vari ambienti di esecuzione (il lavoro recupera il codice da Nexus, SSH al server, copia il codice nel posto giusto e rimbalza sul server)
  • Esecuzione di processi batch notturni. Questo non ha nulla a che fare con la creazione del codice ma funziona molto bene.

Jenkins fornirà una bella interfaccia per monitorare i progressi della costruzione e mantiene tutti i risultati della console in file di facile accesso. Supporta anche lavori in esecuzione in parallelo ("flussi").

Una stranezza è che tutto è una "build" nella terminologia di Jenkins. Sembra un po 'strano vedere i messaggi "build failed" quando un job di distribuzione fallisce.

Sospetto che siano disponibili alcuni plug-in di terze parti che potrebbero rendere meno doloroso l'uso dello stack Microsoft.

Quindi, in breve, svolgerà bene il lavoro, ma dovrai fare del lavoro per scrivere i tuoi lavori. Perché non scaricarlo e installarlo e provarlo?

    
risposta data 05.10.2016 - 07:35
fonte
0

Sta diventando un lontano ricordo ... Qualche anno fa ho lavorato con TFS, C # e C ++ per prodotti commerciali. La cosa principale da cui è stato che MSBUILD era nostro amico. Era il motore di esecuzione utilizzato da TFS Build per eseguire i passaggi di costruzione. Una volta capito come ottenere le nostre build da eseguire dalla riga di comando di MSBUILD, con un po 'di script attorno a loro, non ci siamo mai affidati agli agenti di compilazione TFS o a Visual Studio per i build di nuovo.

All'epoca la licenza non rappresentava un problema. Le nostre licenze MSDN coprivano tutto l'occorrente. Tutto ciò potrebbe essere cambiato negli ultimi anni. Il compilatore C # era incluso in .Net Framework e non richiedeva nemmeno lo studio visivo. Alcune tecnologie Microsoft al di là del semplice C # avevano più dipendenze e complessità.

C'è un plugin MSBUILD per Jenkins. link

Non l'ho mai usato. Ma sembra degno un'occhiata.

Avendo usato Jenkins con i progetti Java (Maven e Gradle invece di MSBUILD) e iOS XCode, trovo che sia più semplice da gestire rispetto a TFS. Vale la pena dare un'occhiata. Con la fortuna, forse il plug-in funziona bene e non è necessario lo scripting. Se stavo lavorando ancora con C #, vorrei provarlo.

    
risposta data 05.10.2016 - 11:12
fonte

Leggi altre domande sui tag