Sobes.tech
Middle

Wat gebeurt er nadat GitLab de code ontvangt?

sobes.tech AI

Antwoord van AI

GitLab, bij ontvangst van een code (meestal via git push), start een proces dat afhankelijk is van de projectinstellingen:

  1. Webhooks: Wanneer er nieuwe code binnenkomt, kan GitLab externe systemen (bijvoorbeeld CI/CD-servers, projectbeheersystemen) informeren door HTTP-verzoeken te sturen. Dit dient als trigger voor verdere acties.

  2. CI/CD pipeline: Als het .gitlab-ci.yml-bestand in het project is geconfigureerd, start GitLab Runner de CI/CD-pipeline. Dit proces omvat:

    • Syntaxcontrole van het .gitlab-ci.yml-bestand.
    • Aanmaken van jobs op basis van de definities in het yml-bestand.
    • Toewijzen van jobs aan beschikbare runners.
    • De runner ontvangt de jobs, downloadt de broncode van de repository.
    • Voert de gespecificeerde commando's uit voor elke job (build, test, deployment, etc.).
    • Slaat artefacten (gebouwde applicaties, testrapporten) en logbestanden op.
    • Stuurt de status van de jobs terug naar GitLab.

    Voorbeeld van .gitlab-ci.yml-structuur:

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Applicatie bouwen..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Tests uitvoeren..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Applicatie deployen..."
        - make deploy
      only:
        - main  # Alleen triggeren bij push naar main branch
    
  3. Automatische acties: GitLab kan andere automatische acties uitvoeren:

    • Mergen verzoek aanmaken (bij push naar een andere branch dan de doelbranch).
    • De status van het merge-verzoek bijwerken (indien aanwezig).
    • Veiligheidsscans uitvoeren (indien geconfigureerd).
    • Automatisch sluiten of koppelen van taken (via sleutelwoorden in commits of de beschrijving van het merge-verzoek).
  4. Notificatiesysteem: GitLab stuurt meldingen naar gebruikers via e-mail of andere kanalen (Slack, Mattermost), als ze zich hebben geabonneerd op gebeurtenissen in de repository (nieuwe commits, pipeline-status, opmerkingen).

  5. Bijwerken van repositorygegevens: Intern werkt GitLab de gegevens over de repository, takken, tags en commitgeschiedenis bij.

Het proces is gericht op het integreren van nieuwe code in de algemene workflow, het automatiseren van build, test en mogelijk deployment, en het informeren van betrokken partijen.