Quali elementi della configurazione potrebbero creare librerie scritte in progetti C ++ / VBA e .NET (C #)?


9

Lavoro nel dipartimento IT di automazione / società di sviluppo e stiamo per implementare / aggiungere CI nel nostro set di strumenti. E abbiamo difficoltà a scegliere quello.

Al momento abbiamo pensato a questi sistemi:

  • Jenkins
  • CircleCI
  • TravisCI

Domanda: quali sono gli attributi chiave del soft CI che i sistemi dovrebbero avere e in base ai quali dovremmo confrontarli?


EDIT: ci aspettiamo da CI le cose standard: dalla costruzione delle applicazioni, l'esecuzione dei test (Unità / Integrazione / Prestazioni / ..), il salvataggio delle statistiche e la fornitura di informazioni via e-mail / sulla pagina (rapporti).

Il problema è che non sappiamo quale se ci sono più funzionalità e se, che cos'è? Questo è quello che avrei cercato sotto le parole "attributi chiave" . I nomi sopra sono solo per riferimento, sto cercando una risposta "perché usare questo o quello" troppo semplificato "usare questo o quello" .

Stiamo sviluppando in ambiente .NET (C #) con alcune librerie scritte in C ++ / VBA.


3
Sarebbe utile se riesci a elaborare ciò che stai cercando nel tuo strumento CI. Quali sono le tue esigenze, quali sono le tue esigenze? Ad esempio: da quali lingue costruirai artefatti? Sei interessato a un modello SaaS o preferisci ospitare il tuo CI? Ci sono altri strumenti CI là fuori, perché l'hai inchiodato a questi tre? Dandoci maggiori informazioni consentiremo risposte più su misura per le tue necessità, altrimenti otterrai risposte generiche che puoi già Google: hackernoon.com/…
Alexandre

1
Guarda, la tua domanda è molto ampia perché non hai provato questi strumenti. Puoi installarli facilmente in un contenitore con pochi comandi e provarli. Se non hai quasi nessuna esperienza, puoi praticamente scegliere a caso, fare esperienza con uno strumento e quindi se smette di funzionare per te, puoi venire e fare domande più specifiche su quali funzionalità hai bisogno e quali strumenti potrebbero avere quelle o quali plug-in necessario per il tuo strumento attuale per ottenere quella funzione.
Jiri Klouda

2
Con la modifica, che sto per per ora vicino questo come duplicato di questa domanda: stackoverflow.com/questions/1438390/comparison-of-ci-servers
Jiri Klouda

1
Il problema con la domanda che richiede gli attributi chiave nel software di integrazione continua è che otterrai la stessa risposta della selezione di quasi tutti gli altri strumenti. Ad esempio, la risposta di avi potrebbe essere applicata altrettanto bene allo strumento di revisione del codice o al sistema di controllo della versione o al wiki o praticamente a tutto.
Jiri Klouda

1
buon collegamento per jenkins Vs teamcity questo aiuterà a capire quale strumento CI scegliere per linkedin.com/pulse/jenkins-vs-teamcity-amir-najjar
Ashish Karpe

Risposte:


12

In generale, ci sono cinque differenze principali tra le diverse soluzioni software CI.

  1. Costo : il software è open source e gratuito o proprietario? Il tuo team DevOps ha già un budget per il software o devi confrontare le opzioni gratuite?

  2. Manutenzione : il software è qualcosa che devi ospitare da solo e gestire o viene offerto come servizio? Se è necessario ospitarlo da soli, sono disponibili i membri del team che possono eseguire la manutenzione? Se viene fornito come servizio, dove risiede il tuo codice?

  3. Sicurezza : vi sono problemi di sicurezza o conformità in merito all'ubicazione delle macchine di compilazione? Le autorizzazioni richieste dal software CI nel tuo SCM sono ben comprese?

  4. Comunità : il software CI ha una buona comunità attorno ad esso con i plugin e il supporto per le tecnologie che usi? È facile ottenere supporto o risolvere i problemi quando le cose vanno male?

  5. UX : Quanto è facile utilizzare il software? Il software CI supporta gli script memorizzati nel proprio SCM per le attività che è necessario eseguire? La segnalazione è facile da capire o richiederà un po 'di formazione?


Nel tuo elenco manca il punto che i servizi gestiti possono avere limitazioni arbitrarie non documentate o bug che possono essere difficili o impossibili da aggirare. Nella mia esperienza, Circle CI e Jenkins hanno questo tipo di limitazioni che possono negare del tutto i vantaggi di un servizio gestito.
Michael Le Barbier Grünewald,

Lista molto buona Vorrei anche aggiungere Extensibility / Plugin. Anche se lo dici in modo implicito nella community, direi che possono essere esclusivi perché alcuni strumenti forniscono i propri plugin mentre possono avere una forte community di supporto.
Gumol,

6

Il sistema SCM che usi può essere essenziale per fare la tua scelta CI.

L'uso di una soluzione privata / intranet, ad esempio, praticamente esclude CircleCIe TravisCIpoiché supportano solo il cloud GitHube / o Bitbucket.

Jenkinsha plugin che supportano molti sistemi SCM là fuori, vedi Quali strumenti SCM supporta Jenkins? . Tuttavia, l'utilizzo di un sistema SCM meno diffuso o personalizzato potrebbe richiedere lo sviluppo di un nuovo plug-in.

Anche le particolarità del tuo edificio / framework di test / infrastruttura possono essere importanti, per ragioni simili (configurazione, posizione / metodo di accesso e compatibilità / supporto).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.