Kontinuerlig integrasjon i tider med smidig programmering

innhold
  1. Kontinuerlig integrasjon i tider med smidig programmering
  2. CI-server
  3. trender & Konklusjon
  4. leste på en side

Kontinuerlig integrasjon er en god måte å optimalisere programvareutvikling. Den følgende artikkelen forklarer sine grunnvoller, endrer navn hindringene i praksis og de resulterende beste praksis og er endelig et syn på dagens trender.

Teamet utviklet programvare-prosjekter blir stadig vanskeligere å klare seg med økende størrelse og kompleksitet og bygge. Den konstante samspill av mange utviklere før eller senere uunngåelig kalt integrasjonsfeil krype i det, avhengig av når de blir lagt merke til vanskelig eller umulig kan være fjernet.

Dette problemet er til syvende og sist så gammel som programvareutvikling i seg selv, og følgelig har det lenge vært ideer og måter å håndtere det. de er kjent under slike navn som "daglig Bygg" og "Smoke test", Det var imidlertid Martin Fowlers artikkel "kontinuerlig integrasjon" (CI) i 2000, som gjort kjent temaet under selbigem navn. Siden da har mer enn ti år gått, og i tillegg til de originale konsepter eksisterer nå klar CI server ulike produsenter. Deres bruk i utvikling av programvare er nå de rigueur.

Først jobb, så gleden

For å drive en CI system rimelig, må noen tekniske og organisatoriske krav være oppfylt, som er kort forklart nedenfor.

En sentral teknisk forutsetning for prosjekter å jobbe med CI, styring av kildekoden og andre relaterte filer med et versjonskontrollsystem (VCS). Det spiller ingen rolle fra CI-view, enten det er et sentralisert system som Subversion eller et distribuert system som Git.

Siden driften av CI-serveren er å kjøre uten menneskelig samhandling, er det nødvendig at byggingen av prosjektene er fullautomatisert (nøkkelord byggesystem). Den nøyaktige betydningen av "bygge" varierer avhengig av prosjektet, vanligvis skjult bak i det minste en kompilering av kildekoden og utføre automatiserte tester.

I driften av en CI-server til slutt lønner seg i det lange løp, automatiserte tester som er nevnt ovenfor være (test automatisering) bør foreligge i tilstrekkelig mengde. Resultatene av en CI-server kjøres noen eller bare ubetydelige testene er ikke meget meningsfylt generelt.

Mens han jobbet på et prosjekt, gjør ansvarlig utviklingsteamet kildekode endringer og sender den med en såkalt forplikte seg til VCS. De inger utføres ofte, ellers sannsynligheten øker kraftig som ikke lenger kan være de lokale endringer av utbygger på CI systemintegrasjon.

Siden CI-systemet er å være en del av utviklingen av kulturen i team, er det nødvendig at alle gruppemedlemmene har enkel tilgang til det og være informert om de respektive resultatene av deres arbeid og som av sine kolleger (synlighet, for eksempel ved å sende aktuelle e-post ,

Det hele er mer enn summen av delene

En CI-systemet er ikke bare selve CI server eller fra andre komponenter. Figur 1 viser skjematisk de grunnleggende komponenter i et typisk CI system. Utgangspunktet er et prosjekt som vil jobbe med CI og kildekoden forvaltes med VCS. Ansvarlig utvikling team som arbeider på prosjektet, og passerer endringer i kildekoden via forplikte seg til VCS. Først er å gjøre en gang kjent i CI-serveren der prosjektet innenfor VCS ligger, vanligvis ved å angi en VCS spesifikk nettadresse og hvordan CI-serveren til VCS godkjent. Ligner på en normal utvikler av CI-serveren oppretter nå en lokal arbeidskopi av den berørte med ham prosjekt.

Komponenter i en CI-system (Fig. 1)

Fra nå av CI serveradressene ber jevnlig til VCS om det har vært endringer i det berørte prosjektet siden sist. Hvis ja, CI-serveren, er en ny såkalt CI bygge utløst. Det første trinnet i en slik CI-build er utgangspunktet at CI-serveren oppdaterer lokal kopi av arbeidet med såkalte VCS oppdatering. prosjektet med denne aktuelle filene er da i neste trinn "bygget"Som vanligvis betyr kompilere og kjøre automatiserte tester.

Sammenstilling og test kjøring fører ikke CI-serveren gjennom, men en bygge verktøy som Maven eller Make. Dette forutsetter at utviklingsteamet har fullstendig automatisert byggeprosessen i oppkjøringen og bygge verktøyspesifikke filer som Maven solgte reseptbelagte (Prosjekt Object Model), eller gjøre filer er også klart i VCS. Avhengig av hvordan samtalen av Bygg Tools ender, klassifiserer CI-serveren hele CI bygge entydig. Dette gjøres i prinsippet følgende skjema:

  1. vellykket: Både samling og automatisert testing avdekket ingen feil.
  2. Advarsel: kompilering og testing var i utgangspunktet vellykket, men det var mindre problemer, som for eksempel enkelt sviktende tester eller advarsler fra kompilatoren.
  3. Feil: Det var en slik kritisk eller mange feil at CI bygge anses å ha sviktet, for eksempel en avslutning av kompilatoren eller overstiger et visst antall mislykkede tester.

Ved å gå inn VCS CI-serveren kan bestemme hvilke medlemmer av utviklingsteamet har gjort de endringene som har forårsaket nylig CI bygge. Disse utviklerne kan konkluderes med spesifikk informasjon, for eksempel via e-post om bygge resultat og dermed få informasjon om hvorvidt deres endringer har ført til problemer.

Vanligvis resultatene av all bygger og tilhørende data på CI-serveren vil bli lagret som rapporter og finnes ved hjelp av nettsidene, slik at bare sin nettadresse og det samlede resultatet må sendes som en melding. På det punktet bør det nevnes at scenarioet beskrev "typisk" CI-flow beskrives. Tilpasninger og utvidelser av den grunnleggende ideen er fullt mulig, for eksempel: