Slik oppretter du en ny byggejobb i Jenkins Freestyle-prosjekt

โšก Smart oppsummering

Jenkins Freestyle Project er en repeterbar byggejobb som samler kildekodeutsjekking, byggetrinn og etterbyggingshandlinger i รฉn konfigurerbar oppgave, opprettet utelukkende gjennom Jenkins webgrensesnitt uten รฅ skrive pipeline-kode.

  • ๐Ÿ”˜ Definisjon: En freestyle-jobb er Jenkins' generell prosjekttype, konfigurert via skjemaer i stedet for en Jenkinsfilen.
  • โ˜‘๏ธ Forutsetninger: En lรธpende Jenkins en kontroller, en JDK pรฅ byggeagenten, Git-pluginen og et tilgjengelig repository kreves fรธrst.
  • โœ… Ti trinn: Logg inn, opprett et nytt element, gi det et navn, angi depotet, legg til et byggetrinn, lagre, bygg og les konsollutdataene.
  • ๐Ÿงช Utarbeidet eksempel: Et HelloWorld-prosjekt hentet fra GitHub kompileres med javac og kjรธres med java inni en Windows trinn for batchbygging.
  • ๐Ÿ› ๏ธ Konfigurasjonskart: Seks skjemaseksjoner โ€“ Generelt, Kilde Code Administrasjon, byggeutlรธsere, byggemiljรธ, byggetrinn og handlinger etter bygging โ€“ dekker alle alternativer.
  • โš™๏ธ Omfangsgrense: Freestyle-jobber passer for automatisering av enkeltoppgaver; leveringsarbeid i flere trinn hรธrer heller hjemme i en versjonskontrollert pipeline-jobb.

Slik oppretter du en ny byggejobb i Jenkins Freestyle-prosjekt

Hva er en Jenkins Freestyle-prosjekt?

Jenkins Freestyle-prosjekt er en repeterbar byggejobb, et skript eller en pipeline som inneholder trinn og handlinger etter bygging. Det er en forbedret jobb eller oppgave som kan strekke seg over flere operasjoner. Den lar deg konfigurere byggeutlรธsere og tilbyr prosjektbasert sikkerhet for din Jenkins prosjekt. Den tilbyr ogsรฅ programtillegg som hjelper deg med รฅ bygge trinn og handlinger etter bygging.

Hvilke typer handlinger du kan utfรธre i en Jenkins Byggetrinn eller handling etter bygging er ganske begrenset. Det finnes mange standard plugins tilgjengelig i en Jenkins Freestyle-prosjektet for รฅ hjelpe deg med รฅ lรธse dette problemet.

Diagrammet nedenfor plasserer freestyle-jobben innenfor det bredere kontinuerlig integrering lรธkke, fra kildeutsjekking til handlingene etter bygging som rapporterer resultatet.

Fremgangsmรฅte for รฅ opprette en jobb i Jenkins Freestyle-prosjekt
Slik oppretter du en jobb i Jenkins

Forutsetninger for รฅ opprette en Jenkins Freestyle-jobb

Fรธr de ti trinnene nedenfor fungerer fra start til slutt, mรฅ fire ting vรฆre pรฅ plass. ร… ikke ha ett av dem er den vanlige grunnen til at en fรธrste freestyle-bygging mislykkes med en rรธd ball i stedet for en blรฅ.

  • En lรธpende Jenkins kontrolleren. Jenkins lytter pรฅ port 8080 som standard. Hvis Jenkins ikke kjรธrer ennรฅ, fรธlg installasjonsgjennomgang fรธrst.
  • En JDK pรฅ maskinen som kjรธrer byggingen. Det utarbeidede eksemplet kompilerer Java, sรฅ javac mรฅ vรฆre pรฅ PATH-en til kontrolleren eller agenten som utfรธrer jobben. Bekreft dette med en linje java -version byggetrinnet fรธr du legger til noe annet.
  • Git-pluginen. Ocuco gรฅ alternativet vises bare under Kilde Code Administrasjon nรฅr plugin-modulen er installert, gjennom Administrer Jenkins > Programtillegg.
  • Et tilgjengelig arkiv. En offentlig HTTPS URL trenger ingen pรฅloggingsinformasjon. Et privat arkiv trenger en pรฅloggingsinformasjon lagret i Jenkins fรธrst, ellers mislykkes utsjekkingen under den aller fรธrste byggingen.

En konto hos Jobb/Opprett tillatelse er ogsรฅ nรธdvendig โ€“ pรฅ en ny enkeltbruker Jenkins administratorkontoen har den allerede.

Slik oppretter du en ny byggejobb i Jenkins

Freestyle byggejobben er et svรฆrt fleksibelt og brukervennlig alternativ. Du kan bruke den til alle typer prosjekter; det er enkelt รฅ sette opp, og mange av alternativene vises i andre byggejobber. Nedenfor er en trinnvis prosess for รฅ skape jobb i Jenkins.

Trinn 1) Logg inn pรฅ Jenkins

ร… opprette en Jenkins freestyle-jobb, logg inn pรฅ din Jenkins dashbordet ved รฅ besรธke ditt Jenkins installasjonssti. Vanligvis vil den vรฆre lagret pรฅ localhost pรฅ http://localhost:8080 Har du installerte Jenkins i en annen bane, bruk riktig URL for รฅ fรฅ tilgang til dashbordet ditt som vist nedenfor Jenkins eksempel pรฅ jobbskaping.

Jenkins dashbordet nรฅdd kl. Jenkins installasjonssti etter innlogging

Trinn 2) Opprett nytt element

Klikk pรฅ "Nytt elementยซ รธverst til venstre pรฅ dashbordet ditt. Skjermbildet nedenfor viser hvor den lenken er plassert.

Lenken til nytt element รธverst til venstre pรฅ Jenkins dashbord

Trinn 3) Skriv inn varedetaljer

I neste skjermbilde,

  1. Skriv inn navnet pรฅ elementet du vil lage. Vi skal bruke "Hello world" for denne demoen.
  2. Velg Freestyle-prosjekt
  3. Klikk OK

Elementnavnboks med Freestyle-prosjekt valgt fรธr du klikker pรฅ OK

Trinn 4) Skriv inn prosjektdetaljer

Skriv inn detaljene for prosjektet du vil teste. Konfigurasjonssiden som รฅpnes vises nedenfor.

Prosjektdetaljer som er lagt inn pรฅ Jenkins freestyle jobbkonfigurasjonsside

Trinn 5) Gรฅ inn i arkivet URL

Under kilde Code Administrasjon, skriv inn depotet ditt URLVi har et testarkiv plassert pรฅ https://github.com/kriru/firstJava.git

Kilde
 Code Administrasjonsseksjon med Git-testarkivet URL kom inn

Det er ogsรฅ mulig for deg รฅ bruke et lokalt depot.

Hvis GitHub-depotet ditt er privat, Jenkins vil fรธrst validere pรฅloggingsinformasjonen din med GitHub og fรธrst deretter hente kildekoden fra GitHub-repositoriet ditt.

Trinn 6) Juster innstillingene

Nรฅ som du har oppgitt alle detaljene, er det pรฅ tide รฅ bygge koden. Juster innstillingene under bygge seksjon for รฅ bygge koden pรฅ det tidspunktet du รธnsker. Du kan til og med planlegge at byggingen skal skje med jevne mellomrom, til bestemte tider.

Under bygging,

  1. Klikk pรฅ "Legg til byggetrinn"
  2. Klikk pรฅ "Henrette Windows batch-kommandoโ€ og legg til kommandoene du vil utfรธre under byggeprosessen.

Rullegardinmenyen som viser de tilgjengelige byggetrinnene ser slik ut.

Rullegardinmenyen for รฅ legge til byggetrinn รฅpnet pรฅ konfigurasjonssiden for freestyle-jobben

โš ๏ธ Versjonsmerknad: nylig Jenkins utgivelser etiketterer dette omrรฅdet Bygg trinn snarere enn Bygge, og pรฅ Linux eller macOS agenter det tilsvarende alternativet er Utfรธr skalletKnappen kalles fortsatt Legg til byggetrinn.

Her har jeg lagt til java-kommandoer for รฅ kompilere java-koden.

Jeg har lagt til fรธlgende Windows-kommandoer:

javac HelloWorld.java
java HelloWorld

Kommandoboksen med de to linjene som er skrevet inn vises nedenfor.

Henrette Windows batch-kommandoboks som inneholder javac- og java-kommandoene

Trinn 7) Lagre prosjektet

Nรฅr du har lagt inn alle data,

  1. Klikk Pรฅfรธr
  2. Spar prosjektet.

Trinn 8) Bygg kildekode

Nรฅ, pรฅ hovedskjermen, klikk pรฅ Bygg nรฅ-knappen pรฅ venstre side for รฅ bygge kildekoden.

Bygg nรฅ-knappen pรฅ venstre side av freestyle-prosjektskjermen

Trinn 9) Sjekk statusen

Etter รฅ ha klikket pรฅ Bygg nรฅ, kan du se statusen til bygget du kjรธrer under Bygghistorikk.

Byggehistorikkpanel som viser statusen til freestyle-bygget som ble kjรธrt

Trinn 10) Se konsollutgangen

Klikk pรฅ byggenummeret og deretter pรฅ konsollutdata for รฅ se statusen til byggeprosjektet du kjรธrer. Det skal vises en vellykket melding, forutsatt at du har fulgt oppsettet riktig som vist nedenfor. Jenkins eksempel pรฅ รฅ opprette en ny jobb.

Konsollutdataskjermen som viser suksessmeldingen for den ferdige byggingen

Oppsummert har vi kjรธrt et HelloWorld-program som er driftet pรฅ GitHub. Jenkins henter koden fra det eksterne depotet og bygger kontinuerlig med en frekvens du definerer.

Jenkins Forklaring av seksjoner i Freestyle-prosjektkonfigurasjonen

Gjennomgangen ovenfor berรธrer bare feltene som HelloWorld-eksemplet trenger. Selve konfigurasjonssiden er delt inn i seks skjemaseksjoner, og det รฅ vite hva hver enkelt eier gjรธr de resterende alternativene mye enklere รฅ finne.

Seksjon Hva den kontrollerer Typisk innstilling
Informasjon Jobbbeskrivelse, forkasting av gamle bygg, parametere og om jobben kjรธrer pรฅ en bestemt agent Description pluss en grense for byggeoppbevaring
Kilde Code Administrasjon Hvilket repository som skal sjekkes ut og med hvilken legitimasjon og gren Git, en HTTPS URL, gren */master or */main
Bygg utlรธsere Hva starter byggingen automatisk Avstem SCM, bygg med jevne mellomrom, eller en webhook fra GitHub
Byggemiljรธ Omslag pรฅfรธrt rundt hele bygget Slett arbeidsomrรฅdet fรธr byggingen starter; legg til tidsstempler i konsollloggen
Bygg trinn Kommandoene som gjรธr jobben, kjรธrer topp til bunn Henrette Windows batch-kommando, eller Utfรธr skall
Handlinger etter bygging Hva skjer etter at trinnene er fullfรธrt, uansett resultat Archise artefaktene, publiser en testrapport, send en e-post

To vaner sparer mye feilsรธking senere. Legg til byggetrinn i den rekkefรธlgen de mรฅ kjรธres, fordi Jenkins behandler dem ovenfra og ned og stopper ved fรธrste feil. Arkiver deretter det bygget produserer som en handling etter bygget, fordi arbeidsomrรฅdet brukes pรฅ nytt av neste bygg mens arkiverte artefakter beholdes per byggnummer.

Freestyle Project vs Pipeline: Hvilken bรธr du bruke?

Freestyle er ikke den eneste prosjekttypen pรฅ skjermbildet for nytt element, og det er ikke alltid den riktige. Tabellen nedenfor setter den opp mot en Rรธrledningsjobb pรฅ punktene som avgjรธr de fleste reelle valgene.

Sammenligningspunkt Freestyle-prosjekt Rรธrledning
Hvordan det er definert Nettskjemaer lagret i jobbens config.xml pรฅ kontrolleren A Jenkinsfilen er lagret med programkoden
Endringshistorikk Holdt av Jenkins, utenfor arkivet ditt Revvist og versjonert som enhver annen kildefil
Faser og parallelt arbeid En enkelt flat liste over byggetrinn Navngitte stadier, parallelle grener og en stadievisning
Lรฆringskurve Ingen skripting nรธdvendig Krever den deklarative pipeline-syntaksen
Passer best ร‰n kompilering, ett skript, รฉn planlagt oppgave eller lรฆring Jenkins Flertrinns bygging, testing og distribusjon av flyter pรฅ tvers av miljรธer

En praktisk regel: grip lรธs mens jobben er en enkeltstรฅende oppgave og du fortsatt lรฆrer deg verktรธyet, og flytt arbeidet til en CI/CD pipeline sรฅ snart det utvikler seg til et andre trinn eller mรฅ gjennomgรฅs sammen med koden. Team som kobler seg sammen Jenkins med byggeverktรธy nรฅr man ofte det punktet raskt โ€“ en Maven og Selenium oppsett er en vanlig utlรธser for byttet, og den samme resonnementet gjelder for alle automatiseringstesting suite som gรฅr i flere faser.

Spรธrsmรฅl og svar

Konsollutdataene angir รฅrsaken. De tre vanlige รฅrsakene er at javac mangler i agentens PATH, et privat repository uten lagret legitimasjon og et feil grennavn. Rett den rapporterte linjen, og kjรธr deretter Build Now pรฅ nytt.

ร…pne Byggeutlรธsere og merk av Bygg med jevne mellomrom, og skriv deretter inn cron-syntaks som for eksempel H 2 * * * for en nattlig lรธpetur. Den H fordeler belastningen utover timen. Avstemning SCM bruker samme syntaks, men bygger bare nรฅr depotet endres.

Velg Utfรธr skallet fra menyen Legg til byggetrinn i stedet for Utfรธr Windows batch-kommando. Alternativet som vises avhenger av operativsystemet til kontrolleren eller agenten jobben er knyttet til, ikke pรฅ din egen maskin.

Lagre tokenet eller SSH-nรธkkelen รฉn gang under Administrer Jenkins > Legitimasjon, og velg den deretter fra rullegardinmenyen Legitimasjon i Kilde Code Ledelsesseksjonen. Jenkins validerer det fรธr utsjekking, slik at en dรฅrlig pรฅloggingsinformasjon feiler byggingen med en gang.

Maskinlรฆringsverktรธy leser konsolllogger og grupperer gjentatte feil, og skiller dermed en ekte kompileringsfeil fra en ustabil agent eller et tidsavbrudd. Denne sorteringen peker deg pรฅ den ene linjen som betyr noe, i stedet for รฅ bla gjennom en lang logg manuelt.

GitHub Copilot utkaster batch- eller shell-skriptet i et byggetrinn, og CLI-en kan oppsummere en mislykket konsolllogg. Den kan ikke klikke seg gjennom konfigurasjonsskjemaet, sรฅ se gjennom alle genererte kommandoer fรธr du lagrer.

Legg til Archise artefaktene som en etterbyggingshandling og gi den et mรธnster som **/*.class. Archived-filer lagres per byggnummer, slik at de overlever arbeidsomrรฅdet nรฅr de brukes pรฅ nytt eller renses ved neste kjรธring.

Hver jobb lever i JENKINS_HOME/jobs/<job-name>, med skjemainnstillingene i config.xml og hver lรธp under builds/Det er nok รฅ sikkerhetskopiere den mappen for รฅ flytte eller gjenopprette jobben.

Oppsummer dette innlegget med: