Questo è il primo di una serie in due parti sponsorizzata su Codeship, il servizio di integrazione e consegna sicuro basato su cloud.
Codeship è un servizio di consegna continua ospitato che si concentra su velocità, affidabilità e semplicità. Configura Codeship per creare e distribuire la tua applicazione da GitHub alla staging o alla piattaforma di produzione di tua scelta.
Il servizio offre una varietà di potenti opzioni di configurazione. Attualmente, Codeship è integrato con i noti gestori di codice sorgente GitHub e Bitbucket. Supporta una varietà di linguaggi di programmazione (Ruby on Rails, Node.js, PHP, Java, Go, Dart, ecc.) E piattaforme di distribuzione (Amazon Web Services, Heroku, Google App Engine, ecc.)
La pratica dell'integrazione continua prevede ripetuti test automatici e la fusione di codice con le notifiche per avvisare gli sviluppatori di problemi nel loro codice in tempo reale. Codeship combina questo con la pratica della consegna continua, che prevede la normale distribuzione del codice una volta che le modifiche hanno superato i test automatici.
In sostanza, quando si esegue il push del codice su GitHub (o Bitbucket), Codeship ricostruisce l'applicazione sui propri server sicuri e esegue i test automatici. Se i test falliscono, avvisa il team di sviluppo tramite e-mail o integrazione con servizi noti come Slack, HipChat, ecc. Se i test superano, Codeship segue la pipeline definita per spostare il codice nei server di staging o di produzione come specificato.
Lavorare con un servizio come Codeship può minimizzare i fallout dai bug, velocizzare il loro rilevamento e rendere il tuo team più confortevole e competente nel rilasciare regolarmente miglioramenti incrementali alla tua piattaforma, sperando di migliorare la tua reattività ai tuoi clienti e al tuo mercato.
Codeship aiuta il tuo team a scrivere e distribuire il proprio codice con maggiore sicurezza. E, il Blog di Codeship ti aiuta a diventare veloce e tenere il passo con le migliori pratiche. Il team ha anche pubblicato un articolo sugli elementi essenziali dell'integrazione continua che puoi leggere anche sul loro sito.
In questo tutorial, ti guiderò attraverso il prodotto Codeship, che spiega come iniziare. Nella prossima puntata, illustrerò le funzionalità di implementazione di Codeship e la loro nuova funzionalità ParallelCI, che consente di velocizzare le suite di test eseguendole in parallelo.
Come promemoria, parteciperò alle discussioni di seguito. Se hai una domanda o un suggerimento sull'argomento, per favore pubblica un commento qui sotto. Puoi anche raggiungermi su Twitter @reifman o mandarmi un'email direttamente.
Il piano gratuito di Codeship consente di realizzare 100 build al mese e cinque progetti privati. Le build e i progetti illimitati iniziano a $ 49 al mese. I piani annuali ti danno due mesi gratis.
Bene, i progetti educativi ricevono uno sconto del 50% e i progetti open source possono usare Codeship gratuitamente.
Se scorri verso il basso nella parte inferiore della pagina dei prezzi, puoi fare clic sul pulsante esilarante "call to action" esageratamente enorme di Codeship per registrarti:
È bello che abbiano un buon senso dell'umorismo.
Quando ti iscrivi, puoi aggiungerti al corso accelerato in cinque giorni di Codeship che ti introduce ai concetti di base dell'integrazione e della consegna continue:
Ecco un esempio della prima lezione email:
Puoi anche iscriverti al loro eccellente eBook: Efficiency in Development Workflow. Assicurati di seguire anche il Blog di Codeship.
Codeship prende sul serio la sicurezza. Per ogni progetto che aggiungi a Codeship, creano una chiave SSH unica che è a sua volta crittografata fortemente e decodificata solo poco prima di essere utilizzata nella macchina virtuale di build. Per ogni build, avviano una macchina virtuale nuova e pulita. Tutte le modifiche apportate (comprese le modifiche al file system) vengono memorizzate in un ramdisk che viene rimosso non appena termina la build (test e distribuzione). Nessuno dei tuoi dati viene mai memorizzato su nessun disco rigido sui loro server di compilazione.
Tutte le comunicazioni tra il browser e il sito Web di Codeship sono crittografate con SSL, come tutte le comunicazioni con la coda di openredis. Tutte le comunicazioni con le macchine virtuali create vengono eseguite tramite SSH.
Codeship non leggerà mai il tuo codice se non richiesto esplicitamente da te. Ciò potrebbe accadere nel caso di una richiesta di supporto o se si desidera eseguire il debug dei propri tecnici. In nessun altro caso guarderanno ciò che vi appartiene, il vostro codice. Solo i dipendenti Codeship a tempo pieno partecipano a questa attività di supporto, non è mai esternalizzato.
Puoi leggere di più sui loro processi di sicurezza sul loro sito web.
Puoi registrarti con Codeship usando la posta elettronica o il tuo account GitHub o Bitbucket tramite OAuth:
Se utilizzi GitHub o Bitbucket, ti verrà chiesto di verificare l'accesso al tuo account:
Una volta autorizzato, tornerai alla pagina del dashboard e dei progetti di Codeship. È tempo di aggiungere il nostro primo progetto:
Per eseguire i test automatici, Codeship deve controllare il codice dal fornitore del codice sorgente. Attualmente supportano GitHub e Bitbucket e altri sono previsti.
Ogni volta che è necessario, è possibile revocare l'autorizzazione nelle impostazioni del provider del codice sorgente e rimuovere le chiavi di distribuzione e gli hook di servizio di Codeship dalle pagine di configurazione dei progetti..
L'idea alla base di Codeship è quella di prendere il codice dai commit degli sviluppatori al gestore del codice sorgente ed eseguire i test automatici nel cloud Codeship protetto. Se i test superano, Codeship continua con le istruzioni di distribuzione. Se falliscono, le notifiche vengono inviate al tuo team via email o servizi di comunicazione come Slack e HipChat.
Per questo tutorial, ho biforcato il codice base di Yii2 Framework per PHP, che include una varietà di test automatizzati. Codeship supporta una varietà di linguaggi di programmazione, ad es. Ruby on Rails, Node.js, PHP, Java, Go, Dart, ecc.
Codeship carica i miei repository da GitHub e seleziono solo Yii2:
Quindi mi chiederà di scegliere la tecnologia della mia piattaforma e impostare i comandi di test.
È possibile configurare Codeship a un livello molto profondo, dalle semplici esigenze ai sofisticati processi di sviluppo a livello aziendale:
A scopo dimostrativo, aggiungerò test di phpunit per le funzionalità di base di Yii2:
In altre parole, ogni volta che spingo gli aggiornamenti nel mio repository GitHub (o Bitbucket), Codeship eseguirà test phpunit per me.
Ecco come appare la pagina del progetto Codeship una volta che questo è stato configurato:
Successivamente, farò scattare una build premendo un piccolo aggiornamento nel mio repository. Guarda come Codeship inizia a costruire il mio codice ...
... e poi procede a eseguire i miei test unitari:
Al termine, è possibile visualizzare un report completo di tutti i passaggi e se i test hanno superato o fallito.
Codeship mantiene un log di compilazione completo per ogni progetto:
Puoi scegliere ciò che Codeship fa con il tuo codice dopo il passaggio dei test. Ad esempio, forse aggiorni il tuo server di staging per ulteriori test, o forse scarichi tutto sui tuoi server di produzione. Codeship consente di definire pipeline sofisticate per test e implementazione.
Ecco una vista dettagliata del menu Impostazioni progetto:
Di seguito sono riportate le impostazioni generali per l'UUID del progetto e la chiave pubblica SSH per le distribuzioni automatizzate:
Puoi configurare le notifiche per le attività di Codeship, ad es. creare errori. Questi possono passare attraverso API o una varietà di servizi di terze parti, ad es. Slack, Campfire, HipChat, ecc .:
C'è anche un'estensione gratuita di Chrome per le notifiche di build di Codeship chiamata Shipscope.
E puoi aggiungere un badge Codeship al tuo repository readme per mostrare la stabilità di commit specifici, in modo che GitHub (o Bitbucket) e i visitatori del sito web possano vedere in tempo reale se una specifica release ha superato i test automatici.
Codeship rende facile aggiungere la tua squadra ai tuoi progetti.
Codeship offre un'integrazione della distribuzione pronta all'uso con molte soluzioni di hosting popolari tra cui Google AppEngine, Code Deploy di Amazon Web Services, Heroku, Engine Yard, Nodejitsu e altro.
Ho intenzione di approfondire più dettagliatamente il processo di distribuzione nel prossimo episodio. Per ora, è possibile rivedere le esercitazioni di Codeship per varie piattaforme.
Hanno una vasta gamma di documentazione per le opzioni di distribuzione continua:
Ecco una breve guida su come distribuire un'applicazione Ruby on Rails da GitHub a Heroku, e il video è sotto. Codeship offre una serie di guide video sul proprio canale Vimeo.
Nel prossimo tutorial, approfondirò ulteriormente l'implementazione con Codeship e la sua nuova funzione ParallelCI, che ti consente di velocizzare le tue suite di test eseguendole in parallelo.
Non esitate a postare le vostre domande e commenti qui sotto. Puoi anche raggiungermi su Twitter @reifman o mandarmi un'email direttamente. Puoi anche sfogliare la mia pagina di istruttori + tutor per vedere altri tutorial che ho scritto.