Code Stream biedt een Jenkins-invoegtoepassing die Jenkins-taken activeert om uw broncode te bouwen en testen. De Jenkins-invoegtoepassing voert testcases uit en kan custom scripts gebruiken.

Om een Jenkins-taak in uw pijplijn uit te voeren, gebruikt u een Jenkins-server en voegt u het Jenkins-eindpunt toe in Code Stream. Vervolgens maakt u een pijplijn en voegt u hieraan een Jenkins-taak toe.

Wanneer u de Jenkins-taak en een Jenkins-eindpunt in Code Stream gebruikt, kunt u een pijplijn maken die opdrachten met meerdere takken in Jenkins ondersteunt. De opdracht met meerdere takken omvat individuele opdrachten in elke tak van een Git-opslagplaats. Wanneer u pijplijnen in Code Stream maakt die opdrachten met meerdere takken ondersteunen:

  • De Jenkins-taak kan Jenkins-opdrachten uitvoeren die zich in meerdere mappen op de Jenkins-server bevinden.
  • U kunt het pad naar de map in de Jenkins-taakconfiguratie overschrijven zodat deze een ander mappad gebruikt, dat het standaardpad overschrijft dat op het Jenkins-eindpunt in Code Stream is gedefinieerd.
  • Pijplijnen met meerdere takken in Code Stream detecteren Jenkins-opdrachtbestanden van het type .groovy in een Git-opslagplaats of een GitHub-opslagplaats en beginnen met het maken van opdrachten voor elke tak die in de opslagplaats wordt gescand.
  • U kunt het standaardpad dat op het Jenkins-eindpunt is gedefinieerd, overschrijven met een pad dat is opgegeven in de Jenkins-taakconfiguratie en een opdracht en pijplijn uitvoeren die zijn gekoppeld aan elke tak in een Jenkins-hoofdopdracht.

Voorwaarden

  • Stel een Jenkins-server in waarop versie 1.561 of hoger wordt uitgevoerd.
  • Controleer of u lid bent van een project in Code Stream. Als u geen lid bent, vraagt u de Code Stream-beheerder om u als lid van een project toe te voegen. Zie Hoe voeg ik een project toe in Code Stream?.
  • Controleer of er een taak bestaat op de Jenkins-server, zodat de pijplijntaak deze kan uitvoeren.

Procedure

  1. Een Jenkins-eindpunt toevoegen en valideren.
    1. Klik op Eindpunten > Nieuw eindpunt.
    2. Selecteer een project en selecteer Jenkins als eindpunttype. Voer vervolgens een naam en een beschrijving in.
    3. Als dit eindpunt een bedrijfskritisch onderdeel in uw infrastructuur is, moet u Markeren als beperkt inschakelen.
    4. Voer de URL voor de Jenkins-server in.
    5. Voer de gebruikersnaam en het wachtwoord in om u aan te melden op de Jenkins-server. Voer vervolgens de resterende informatie in.
      Tabel 1. Resterende informatie voor het Jenkins-eindpunt
      Eindpunt-invoer Beschrijving
      Pad naar de map Pad voor de map waarin uw taken zijn gegroepeerd. Jenkins kan alle taken in de map uitvoeren. U kunt submappen maken. Bijvoorbeeld:
      • folder_1 kan job_1 bevatten
      • folder_1 kan folder_2 bevatten, die job_2 kan bevatten

      Wanneer u een eindpunt maakt voor folder_1, is het pad naar de map job/folder_1 en vermeldt het eindpunt alleen job_1.

      Om de lijst met opdrachten in de onderliggende map folder_2 te verkrijgen, moet u een ander eindpunt maken dat /job/folder_1/job/folder_2/ als pad naar de map gebruikt.

      Mappad voor Jenkins-opdrachten met meerdere takken Om Jenkins-opdrachten met meerdere takken te ondersteunen, voert u in de Jenkins-taak het volledige pad in dat de Jenkins-server-URL en het volledige opdrachtpad bevat. Wanneer u een mappad in de Jenkins-taak opneemt, overschrijft dat pad het pad dat op het Jenkins-eindpunt wordt weergegeven. Met het aangepaste mappad in de Jenkins-taak, geeft Code Stream alleen opdrachten weer die in die map aanwezig zijn.
      • Bijvoorbeeld: https://server.yourcompany.com/job/project
      • Als de pijplijn ook de belangrijkste Jenkins-opdracht moet activeren, gebruikt u: https://server.yourcompany.com/job/project/job/main
      URL Host-URL van de Jenkins-server. Voer de URL in als protocol://host:port. Bijvoorbeeld: http://192.10.121.13:8080
      Pollinginterval Intervalduur voor Code Stream om de Jenkins-server te pollen voor updates.
      Aantal keer dat een aanvraag herhaald wordt Aantal keren dat de geplande bouwaanvraag voor de Jenkins-server opnieuw moet worden geprobeerd.
      Wachttijd voor nieuwe poging Aantal seconden dat moet worden gewacht voordat de bouwaanvraag voor de Jenkins-server opnieuw wordt geprobeerd.
    6. Klik op Valideren en controleer of het eindpunt verbinding maakt met Code Stream. Corrigeer eventuele fouten als er geen verbinding wordt gemaakt en klik vervolgens op Opslaan.
      Het Jenkins-eindpunt dat uw code bouwt en test, vereist de URL en stelt u in staat een variabele te maken die het gebruikerswachtwoord bewaart.
  2. Om uw code te bouwen, maakt u een pijplijn en voegt u een taak toe die gebruikmaakt van uw Jenkins-eindpunt.
    1. Klik op Pijplijnen > Nieuwe pijplijn > Leeg canvas.
    2. Klik op de standaardfase.
    3. Voer in het Taak-gebied een naam voor de taak in.
    4. Selecteer Jenkins als taaktype.
    5. Selecteer het Jenkins-eindpunt dat u heeft gemaakt.
    6. Selecteer in het vervolgkeuzemenu een taak van de Jenkins-server die door uw pijplijn wordt uitgevoerd.
    7. Voer de parameters voor de taak in.
    8. Voer het verificatietoken voor de Jenkins-taak in.
    Wanneer u een Jenkins-taak configureert die gebruikmaakt van uw Jenkins-eindpunt, selecteert u de Jenkins-opdracht, voegt u waarden toe en vervolgens kunt u een token invoeren.
  3. Schakel uw pijplijn in en voer deze uit. Bekijk de uitvoering van de pijplijn.
    De pijplijnuitvoering voor de Jenkins-taak geeft de Jenkins-opdrachtdetails weer, inclusief de opdracht-id, de opdracht-URL en de sleutels en waarden in het opdrachtresultaat.
  4. Bekijk de details en status van de uitvoering op het pijplijndashboard.
    U kunt eventuele fouten identificeren en zien waarom het is mislukt. U kunt ook trends zien over de uitvoeringsduur, voltooiingen en fouten van de pijplijn.
    Het pijplijndashboard geeft details over pijplijnuitvoeringen weer, zoals het aantal pijplijnuitvoeringen en de duur ervan, en de status voor elke uitvoering.

resultaten

Gefeliciteerd! U heeft Code Stream geïntegreerd met Jenkins door een eindpunt toe te voegen, een pijplijn te maken en een Jenkins-taak te configureren die uw code bouwt.

Voorbeeld: Voorbeeld van YAML voor een Jenkins-bouwtaak

Voor het type Jenkins-bouwtaak dat in dit voorbeeld wordt gebruikt, lijkt de YAML op de volgende code, waarbij meldingen zijn ingeschakeld:

test:
  type: Jenkins
  endpoints:
    jenkinsServer: jenkins
  input:
    job: Add two numbers
    parameters:
      Num1: '23'
      Num2: '23'

Volgende stappen

Bekijk de overige secties voor meer informatie. Zie Code Stream verbinden met eindpunten.