windows - Hvordan Jenkins Master instruerer slave for at downloade kilden fra TFS

Indlæg af Hanne Mølgaard Plasc

Problem



DevOps konfigurerede en windows slave maskine som byggemaskine til vores team, og jeg bemærkede at han installerede TFS-stik i Jenkins master, men ikke slave maskine. Vi får dog kildekode i slaven bagefter.
Jeg spekulerer på, hvordan download-workflow virker? :



  • 1) Master overfører kildekode og overfører derefter kode til slave
    maskine?

  • 2) eller efter Master tilsluttes til TFS-serveren, så instruerer den bare slave maskine til at downloade den direkte fra TFS-serveren?



Forklar venligst lidt mekanismen. Hvis det er 2), så hvad er installeret i slave for at kunne downloade fra TFS.

Bedste reference


VCS-plugins fungerer normalt på denne måde: [5]



  1. Master er konfigureret til at bruge nogle VCS og forberedt med nogle indstillinger

  2. Slave har nogle binære filer, der kan udføre download kommandoen



Efter en build start, vil de fleste trin blive udført på slave via sine binære filer, herunder downloading af kildekoden. Dette kræver, at slave har VCS binær (for eksempel git) og adgang til målregisteret (for git det kan være ssh-nøgle).


Jeg har ikke nogen slave med TFS ved hånden lige nu, men processen er temmelig ens. Jeg antager, at hvis du tjekker Console output af bygningen, kan du se den fulde sti til binær bruges til at downloade TFS et eller andet sted på meget top.


Her er en prøve af sådan output for git:


Building remotely on slave01 in workspace /jenkins-workspace
> /bin/git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> /bin/git config remote.origin.url git@github.com:ORG/repo.git # timeout=10

Andre referencer 1


For at etablere en kommunikation mellem Jenkins og TFS, skal du installere Team Foundation Server Plugin og konfigurere det som denne artikel siger. På denne måde kan Jenkins få ressourcer fra TFS. [6] [7]


Hver slave driver et særskilt program kaldet en 'slave agent', og slaveagenten og Jenkins master skal etablere en tovejs kommunikationsforbindelse.
For at oprette slaver/knuder i Jenkins kan du henvise til denne artikel. Hvis alle indstillingerne er indtastet korrekt, vil node slave maskine være online og kommunikere med Jenkins master. [8]