Dette er den andre delen av en sponset serie på Codeship, Den sikre, skybaserte kontinuerlige integrasjonen og leveringstjenesten. Hvis du savnet del ett, kan du gå tilbake og les det her.
Codeship er en vert kontinuerlig leveringstjeneste som fokuserer på fart, pålitelighet og enkelhet. I denne opplæringen vurderer jeg grunnleggende om kodifisering fra første del og går deretter gjennom distribusjon av koden din.
Først vil jeg vise hvordan du bruker kodeks for å distribuere til AWS CodeDeploy. Deretter vil vi utforske Kodeship's nye ParallelCI, som gir raskere tester og bygger ved å delegere oppgaver parallelt med forskjellige virtuelle maskiner. Jeg vil også introdusere kodeks API, nyttig hvis du vil ha mer automatisert kontroll over kodeservice.
La oss begynne med en gjennomgang av hva Codeship gjør.
Med Kodeship konfigurerer du tjenesten til å bygge, teste og distribuere applikasjonen fra kildekodeadministratoren til staging og produksjonsplattformene etter eget valg. Tjenesten tilbyr en rekke kraftige oppsettalternativer. For tiden er Codeship integrert med populære kildekodeforvaltere GitHub og Bitbucket. Den støtter en rekke programmeringsspråk (Ruby on Rails, Node.js, PHP, Java, Go, Dart, etc.) og distribusjonsplattformer (Amazon Web Services, Heroku, Google App Engine, etc.)
Utøvelsen av kontinuerlig integrasjon innebærer gjentatt automatisert testing og kodefusjonering med varsler for å varsle utviklere til problemer i koden i sanntid. Codeship kombinerer dette med praksis med kontinuerlig levering, som sørger for vanlig kodeutplassering når endringer har bestått automatiserte tester.
I hovedsak, når du trykker på koden til GitHub, bygger Codeship din søknad på sine sikre servere og kjører automatiske tester. Hvis testene mislykkes, underretter det utviklingslaget ditt via e-post eller integrering med populære tjenester som Slakk, HipChat osv. Hvis tester passerer, følger Codeship din definerte rørledning for å flytte kode til staging eller produksjonsservere som angitt.
Arbeide med en tjeneste som koder kan minimere nedfall fra feil, øke gjenkjenningen og gjøre teamet ditt mer komfortabelt og dyktig i å slippe regelmessige inkrementelle forbedringer på plattformen. Forhåpentligvis forbedrer du responsen til kundene og markedet..
Kodeship hjelper teamet ditt å skrive og distribuere koden med økt tillit.
Nylig annonserte Codeship en spennende ny funksjon for å øke hastigheten på testene dine. Den heter ParallelCI.
ParallelCI lar deg dele testkommandoene dine på flere virtuelle maskiner (VM) for å øke hastigheten på byggetiden din. Ved å kjøre tester i parallell øker koderkapasiteten lagets produktivitet med raskere bygg. Du kan bruke ParallelCI til å konfigurere prosjektet med opptil ti parallelle rørledninger for å få så mye som 10x hastighetsøkning for testpakken din.
Du kan lese casestudier fra Codeship-klienter Bannerman og LendingCrowd, som kutter testtider med henholdsvis 30% og 50%.
Akkurat som en påminnelse, deltar jeg i diskusjonene nedenfor. Hvis du har et spørsmål eller et emneforslag, vennligst legg inn en kommentar nedenfor. Du kan også nå meg på Twitter @ reifman eller email meg direkte.
La oss nå begynne å utforske kodens distribusjonsfunksjoner mer detaljert.
Du velger hvilket kodeskrift som gjør med koden din etter at testene har bestått. For eksempel, kanskje du oppdaterer staging-serveren for ytterligere tester, eller kanskje du ruller alt ut til produksjonsserverne dine. Codeship lar deg definere sofistikerte rørledninger for testing og distribusjon.
Forresten tilbyr Codeship også denne gratis og svært informativ eBok: Effektivitet i utviklings arbeidsflyter. Du kan ønske å sjekke det ut sammen med Codeship Blog, som holder deg oppdatert med nye utviklinger og beste praksis.
Jeg antar at du fulgte vår første opplæring og har registrert deg og begynt å bruke Kodeship.
Hvis du besøker prosjektets bygglogg, ser du en liste over de siste resultatene. Klikk på den grønne Suksess knapp.
Dette vil gi opp resultatene for byggeresultatet og Bygg alternativer sidebarmeny.
Her er menyen Bygg innstillinger. Klikk på Review Test Settings:
Her ser du Prosjektinnstillinger sidebarmeny til venstre, som er der vi finner Distribusjonsalternativer vi trenger.
Her er en detaljert oversikt over Prosjektinnstillinger-menyen. Klikk på Utplassering:
Codeship gir ferdig installert distribusjon integrasjon med mange populære hosting-løsninger, inkludert Google AppEngine, Amazon Web Services CodeDeploy, Heroku, Engine Yard, Nodejitsu og mer. Codeship er en offisiell partner for AWS og CodeDeploy.
Codeship tilbyr en håndfull opplæringsprogrammer for ulike plattformer og et bredt spekter av dokumentasjon for kontinuerlige distribusjonsalternativer.
Jeg skal gå gjennom to eksempler. Først vil jeg distribuere min tidligere PHP-baserte Yii2 Framework bygge til AWS med CodeDeploy. Da skal jeg bygge Ruby Discourse Project ved å bruke ParallelCI for å øke byggetidene mine.
I første del brukte jeg Codeship å kjøre automatiserte tester på en gaffel av PHP-basert Yii2 Framework. La oss nå konfigurere kodeks for å distribuere prosjektet til en AWS-server ved hjelp av AWS CodeDeploy.
Først, la oss ta en tur gjennom Amazon AWS CodeDeploy:
Jeg gir en grunnleggende gjennomgang av AWS CodeDeploy, men målet mitt er ikke å detaljere det her. I stedet er mitt fokus å hjelpe deg med å konfigurere koderforbindelsen til AWS CodeDeploy.
Først, besøk AWS CodeDeploy Starter side og velg en Tilpasset distribusjon:
Deretter, Lag en ny applikasjon. Jeg har allerede opprettet en EC2-forekomst og merket den CodeDeployDemo.
Velg en Distribusjonskonfigurasjon. Jeg har allerede opprettet en Servis rolle også:
Nå som du har konfigurert AWS CodeDeploy-programmet, må du konfigurere Deploy-gruppen din for forekomsten din.
Dette vil variere avhengig av søknad og S3-bøtteplassering:
Så la oss gå tilbake til Kodeship. Skriv inn prosjektet ditt og klikk Prosjektinnstillinger øverst til høyre. Klikk deretter Utplassering:
Deretter klikker du på CodeDeploy knapp:
Fyll ut innstillingene for AWS Code Deployment-egenskapen med Amazon-tilgangstastene, hemmelig nøkkel og CodeDeploy-applikasjonsnavnet og distribusjonsgruppen. Spesifiser ditt S3-bøtte også:
Nå kan det hende du vil gjennomgå dokumentasjonskoden for bruk av AWS CodeDeploy og tilhørende blogginnlegg.
Neste gang du trykker på en forpliktelse, vil Codeship bygge din app, teste den og starte en AWS CodeDeploy-operasjon.
Codeship tilbyr også en rekke video guider på sin Vimeo kanal som kan interessere deg. For eksempel:
Her er de i orden. Så dykker vi inn i ParallelCI for å øke hastigheten på testene våre.
Her er en kort guide for å distribuere en Ruby on Rails-app fra GitHub til Heroku, og videoen er under:
Her er en kort guide om hvordan du distribuerer en Node.js-app fra GitHub til Nodejitsu, og videoen er under:
Her er en kort veiledning om hvordan du konfigurerer kontinuerlig integrasjon og kontinuerlig distribusjon for en Django-applikasjon fra GitHub til App Engine, og videoen er under:
Jeg skal lage en gaffel av den populære diskusjonsplattformen Diskurs for Ruby on Rails. Deretter legger jeg til et prosjekt på Kodeship for min forkedkopi av Diskurs.
Klikk på Miljø og konfigurere miljøvariablene for vårt Rails-prosjekt:
Da bruker vi følgende oppsettkommandoer for å konfigurere bygginstruksjonene:
buntinstallasjon - uten utvikling - utplassering --retry = 3 --jobs = 3 bunke exec rake db: migrere
Deretter vil jeg trykke et eksempel på endring til ReadMe-filen for å starte en kodeskapsbygging.
Her er resultatene fra en vellykket bygge:
La oss nå legge til følgende tester på en enkelt rørledning.
Bundle exec rake qunit: testpakke exec rake plugin: spec bundle exec rspec - profiler
Neste gang vi forplikter, bygger Codeship koden og kjører testen. Med en rørledning tar det nesten ti minutter.
Nå, la oss bytte til ParallelCI.
Med ParallelCI har hvert prosjekt flere testrørledninger som drives parallelt. Hver av disse rørledninger går i en virtuell maskin uavhengig av hverandre. Kodeship vil først kjøre oppsettskommandoer og deretter noen vilkårlig test kommandoer du definert for denne spesifikke rørledningen via grensesnittet. For å lette å skille forskjellige rørledninger, kan du gi et vennlig navn for hver enkelt.
Her er en video gjennomgang med en annen kodebase av hvordan vi skal sette opp ParallelCI for å fremskynde disse testene:
For min første testrørledning, skal jeg kjøre følgende tester:
Bundle exec rake qunit: testpakke exec rake plugin: spesifikasjonspakke exec rspec spec / controllers spec / models --profile
For min andre testrørledning kjører jeg følgende:
rm -fr spec / controllers spec / models bundle exec rspec - profiler
Da vil jeg skyve en ny forpliktelse, og du kan se ParallelCI Kjører nedenfor med hver rørledningens individuelle statuslogg:
Etter bare 7 minutter 26 sekunder fullfører to-pipeline bygningen:
Det er en prøvebesparelse på nesten 30%. Det er et godt eksempel på hvordan Codeship's ParallelCI kan lagre lagtiden når du kjører mer sofistikerte bygge- og testsekvenser. Vær også oppmerksom på at koder gir opptil 20 parallelle testrørledninger - hastighetsøkningen her kan være eksponentiell.
Husk at hvis du har en distribusjon konfigurert for en bestemt gren, og hver testrørledning rapporterer et vellykket løp, vil distribusjonsrøret bli kjørt. Du trenger ikke å endre noe hvis du bruker en integrert kodeksutplassering, f.eks. Heroku, AWS CodeDeploy, Google App Engine, etc..
Vær også oppmerksom på at når bygg og distribusjonskommandoer kjøres på flere virtuelle maskiner, vil artefakter som er opprettet under teststrinnene, ikke være tilgjengelige under distribusjonen. Hvis du trenger gjenstander fra de forrige trinnene, må du sørge for å regenerere dem under distribusjonen ved hjelp av et scriptutplassering lagt til før selve distribusjonen.
Det er enda en ting å nevne, Codeship API.
Hvis du vil ha enda mer kontroll over Codeship til fullt skript og automatisere dine kontinuerlige leveringstjenester, tilbyr Codeship en API:
Du kan konfigurere byggene på prosjektet og starte dem på nytt etter behov.
Jeg vil gjerne oppsummere hva vi har lært om kodifisering:
Codeship er i stand til å gi verdi til små lag med sin gratis eller grunnleggende plan, samt meget store selskaper som trenger opptil 20 parallelle testrørledninger, med deres Enterprise-plan. Se kodeprisens prisside for mer informasjon. Det er enda en gratis 14 dagers prøveperiode for alle å prøve ut sin 20 parallelle pipeline testing konfigurasjon.
Jeg håper du gir kodeship et forsøk. Del din erfaring i kommentarene. Som alltid, vær så snill å poste dine spørsmål også. Du kan også nå meg på Twitter @ reifman eller email meg direkte. Gå til min Tuts + instruktørside for å se andre opplæringsprogrammer jeg har skrevet.