Codeship continue integratie en levering eenvoudig gemaakt

Dit is de eerste van een gesponsorde tweedelige serie over Codeship, de veilige, cloud-gebaseerde continue integratie- en bezorgservice. 

Wat is Codeship?

Codeship is een gehoste continue bezorgservice die zich richt op snelheid, betrouwbaarheid en eenvoud. U configureert Codeship voor het bouwen en implementeren van uw applicatie van GitHub naar de staging of het productieplatform van uw keuze. 

De service biedt een verscheidenheid aan krachtige instellingsopties. Momenteel is Codeship geïntegreerd met populaire broncodemanagers GitHub en Bitbucket. Het ondersteunt een verscheidenheid aan programmeertalen (Ruby on Rails, Node.js, PHP, Java, Go, Dart, enz.) En implementatieplatformen (Amazon Web Services, Heroku, Google App Engine, etc.)

De praktijk van continue integratie omvat herhaaldelijk geautomatiseerd testen en coderen met meldingen om ontwikkelaars in realtime op de hoogte te stellen van problemen in hun code. Codeship combineert dit met de praktijk van continue levering, die voorziet in regelmatige code-implementatie zodra wijzigingen zijn geslaagd voor geautomatiseerde tests.

Als u uw code naar GitHub (of Bitbucket) pusht, bouwt Codeship uw applicatie op de beveiligde servers opnieuw op en voert uw geautomatiseerde tests uit. Als de tests mislukken, stelt dit uw ontwikkelteam op de hoogte via e-mail of integratie met populaire services zoals Slack, HipChat, enzovoort. Als uw tests worden doorgegeven, volgt Codeship uw gedefinieerde pijplijn om code te verplaatsen naar staging of productieservers zoals opgegeven.

Werken met een service als Codeship kan de gevolgen van fouten beperken, hun detectie versnellen en uw team comfortabeler en bekwamer maken door regelmatige incrementele verbeteringen aan uw platform aan te brengen - hopelijk verbetert u uw reactievermogen op uw klanten en uw markt.

Met Codeship kan uw team hun code met meer zelfvertrouwen schrijven en implementeren. En de Codeship-blog helpt u op de hoogte te blijven en de best practices bij te houden. Het team heeft ook een stuk over ononderbroken essentiële integratieboeken gepubliceerd die u ook op hun site kunt lezen.

In deze zelfstudie laat ik u door het Codeship-product lopen, waarin wordt uitgelegd hoe u aan de slag kunt gaan. In de volgende aflevering ga ik de implementatiemogelijkheden van Codeship en hun onlangs vrijgegeven functie ParallelCI beschrijven, waarmee je je testsuites kunt versnellen door ze parallel uit te voeren.

Ter herinnering: ik neem deel aan de onderstaande discussies. Als je een vraag of een suggestie voor een onderwerp hebt, plaats dan een commentaar hieronder. Je kunt me ook bereiken via Twitter @reifman of mij rechtstreeks een e-mail sturen.

Codeship Prijzen

Het gratis plan van Codeship biedt 100 builds per maand en vijf privéprojecten. Onbeperkte builds en projecten beginnen bij $ 49 per maand. Jaarplannen geven u twee maanden gratis.

Mooi, educatieve projecten krijgen 50% korting en open source-projecten kunnen Codeship gratis gebruiken.

Als u helemaal onderaan de prijspagina naar beneden scrolt, kunt u klikken op de hilarische "waanzinnig grote call-to-action-knop" van Codeship om u aan te melden:

Het is leuk dat ze een goed gevoel voor humor hebben.

Meer informatie over de continue levering van Codeship

Wanneer u zich aanmeldt, kunt u uzelf toevoegen aan de vijfdaagse e-mailgebaseerde spoedcursus van Codeship, waarmee u kennismaakt met de basisbegrippen van continue integratie en levering:

Hier is een voorbeeld van de eerste e-mailles:

U kunt zich ook aanmelden voor hun uitstekende eBoek: Efficiency in ontwikkelingswerkstromen. Zorg ervoor dat je ook de Codeship-blog volgt.

Uw code beveiligen

Codeship neemt beveiliging serieus. Voor elk project dat u aan Codeship toevoegt, maken ze een unieke SSH-sleutel die zelf sterk is gecodeerd en alleen wordt gedecodeerd kort voordat deze wordt gebruikt in de virtuele buildmachine. Voor elke build starten ze een nieuwe en schone virtuele machine. Alle wijzigingen die u aanbrengt (inclusief bestandssysteemwijzigingen) worden opgeslagen in een ramdisk die wordt verwijderd zodra uw build is voltooid (tests en implementatie). Geen van uw gegevens wordt ooit opgeslagen op een harde schijf op hun build-servers.

Alle communicatie tussen uw browser en de Codeship-website is SSL-gecodeerd, evenals alle communicatie naar hun openredis-wachtrij. Alle communicatie met de virtuele buildmachines gebeurt via SSH.

Codeship zal uw code nooit lezen als niet expliciet door u wordt gevraagd. Dit kan gebeuren in het geval van een ondersteuningsverzoek of als u iets wilt laten debuggen door hun technici. In geen enkel ander geval zullen ze kijken naar wat van jou is - jouw code. Alleen fulltime Codeship-werknemers nemen ooit deel aan deze ondersteuningsactiviteit - het wordt nooit uitbesteed.

U kunt meer lezen over hun beveiligingsprocessen op hun website.

Aan de slag met Codeship

Registratie en authenticatie

U kunt zich via OAuth aanmelden met Codeship via e-mail of uw GitHub- of Bitbucket-account:

Als u GitHub of Bitbucket gebruikt, wordt u gevraagd de toegang tot uw account te verifiëren:

Na autorisatie keert u terug naar de Codeship-dashboard- en projectenpagina. Het is tijd om ons eerste project toe te voegen:

Maak je eerste project

Voor het uitvoeren van uw geautomatiseerde tests moet Codeship uw code controleren bij uw broncodeprovider. Momenteel ondersteunen ze GitHub en Bitbucket, en andere zijn gepland.

Telkens wanneer u dit nodig heeft, kunt u de toestemming intrekken in de instellingen van uw broncodeprovider en de implementatiesleutels en servicehaken van Codeship verwijderen van de configuratiepagina's van uw projecten..

Het idee achter Codeship is om code van de commits van uw ontwikkelaars over te nemen naar uw broncodemanager en uw geautomatiseerde tests uit te voeren in de veilige Codeship-cloud. Als uw tests verlopen, gaat Codeship verder met uw implementatie-instructies. Als ze falen, worden meldingen verzonden naar uw team via e-mail of communicatieservices zoals Slack en HipChat.

Verbind uw Source Code Manager

Voor deze zelfstudie heb ik de Yii2 Framework-codebasis gevorkt voor PHP, die een verscheidenheid aan geautomatiseerde tests bevat. Codeship ondersteunt een verscheidenheid aan programmeertalen, bijvoorbeeld Ruby on Rails, Node.js, PHP, Java, Go, Dart, enz.

Codeship laadt mijn repositories van GitHub en ik selecteer gewoon Yii2:

Daarna zal het me vragen om mijn platformtechnologie te kiezen en testopdrachten in te stellen.


U kunt Codeship op een zeer diep niveau configureren, van eenvoudige behoeften tot geavanceerde enterprise level build-processen:

Voor demonstratiedoeleinden zal ik phpunit-tests toevoegen voor de basisfunctionaliteit van Yii2:

Met andere woorden, wanneer ik updates naar mijn GitHub- (of Bitbucket) -opslagplaats push, voert Codeship phpunit-tests uit voor mij.

Dit is hoe de projectpagina van Codeship er uit ziet als deze is geconfigureerd:

Vervolgens zal ik een build activeren door een kleine update naar mijn repository te duwen. Kijk hoe Codeship begint met het bouwen van mijn code ...

... en gaat vervolgens verder met het uitvoeren van mijn unit tests:

Wanneer dit is voltooid, ziet u een volledig rapport van alle stappen en of de tests zijn geslaagd of mislukt.

Codeship onderhoudt een compleet logbestand voor elk project:

Implementatiepijplijnen

U kunt kiezen wat Codeship doet met uw code nadat uw tests geslaagd zijn. U kunt bijvoorbeeld uw staging-server bijwerken voor verdere tests, of misschien rolt u alles uit naar uw productieservers. Met Codeship kunt u geavanceerde pijplijnen definiëren voor testen en inzetten.

Hier is een gedetailleerd overzicht van het menu Projectinstellingen:

Hier is een overzicht van de algemene instellingen voor uw project-UUID en de publieke SSH-sleutel voor geautomatiseerde implementaties:

meldingen

U kunt meldingen voor Codeship-activiteiten configureren, bijvoorbeeld fouten maken. Deze kunnen door API's of een verscheidenheid aan diensten van derden gaan, b.v. Slack, Campfire, HipChat, enz .: 

Er is ook een gratis Chrome-extensie voor Codeship-buildmeldingen genaamd Shipscope.

En u kunt een Codeship-badge toevoegen aan de readme van uw repository om de stabiliteit van specifieke commits te tonen, zodat uw GitHub (of Bitbucket) en websitebezoekers in realtime kunnen zien of een specifieke release zijn geautomatiseerde tests heeft doorstaan.

Met Codeship is het eenvoudig om uw team aan uw projecten toe te voegen.

Configureer uw implementaties

Codeship biedt kant-en-klare implementatie-integratie met vele populaire hosting-oplossingen, waaronder Google App Engine, Amazon Web Services Code Deploy, Heroku, Engine Yard, Nodejitsu en meer.

Ik ga in de volgende aflevering dieper in op het implementatieproces. Voorlopig kunt u de zelfstudies van Codeship voor verschillende platforms bekijken.

Ze hebben een breed scala aan documentatie voor opties voor continue implementatie:

Hier is een korte handleiding over het implementeren van een Ruby on Rails-app van GitHub naar Heroku, en de video is hieronder. Codeship biedt een aantal videogidsen op hun Vimeo-kanaal.


 

Wat is het volgende?

In de volgende zelfstudie zal ik me meer verdiepen in de implementatie met Codeship en de nieuwe ParallelCI-functie, waarmee u uw testsuites kunt versnellen door ze parallel uit te voeren.

Aarzel niet om uw vragen en opmerkingen hieronder te plaatsen. Je kunt me ook bereiken via Twitter @reifman of mij rechtstreeks een e-mail sturen. Je kunt ook bladeren door mijn Tuts + instructeur-pagina om andere tutorials te bekijken die ik heb geschreven. 

Gerelateerde Links

  • Codeship Website
  • De Codeship-blog
  • Codeship-documentatie
  • Codeship Videogidsen
  • Efficiëntie in ontwikkelingswerkstromen (eBook)