Artefakte in nachfolgenden Jobs verwenden

Artefakte

Artefakte in nachfolgenden Jobs verwenden

Artefakte aus früheren Jobs werden von späteren Stages standardmäßig heruntergeladen. Verwenden Sie das Schlüsselwort needs, wenn ein Job starten soll, sobald ein benötigter Job abgeschlossen ist, und dabei nur die Artefakte dieses Jobs herunterladen soll.

Die .gitlab-ci.yml aktualisieren, um Artefakte in nachfolgenden Jobs zu verwenden

Die folgende Konfiguration gibt test_job und deploy_job ausdrücklich Zugriff auf die Artefakte von build_job:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Anwendung wird gebaut..."
    - pip install -r requirements.txt
    - python setup.py build --build-base build
    - echo "Build abgeschlossen"
  artifacts:
    paths:
      - build/

test_job:
  stage: test
  script:
    - echo "Tests werden ausgeführt..."
    - mkdir -p test-results
    - pytest tests/ > test-results/report.txt
  artifacts:
    paths:
      - test-results/report.txt
  needs:
    - job: build_job
      artifacts: true

deploy_job:
  stage: deploy
  script:
    - echo "Projekt wird bereitgestellt"
  needs:
    - job: build_job
      artifacts: true

Erläuterung von needs:artifacts

  • needs in test_job: Der Job kann starten, sobald build_job abgeschlossen ist, und lädt dessen Artefakt build/ herunter.

  • needs in deploy_job: Behalten Sie diesen Eintrag nur bei, wenn die Bereitstellung das Build-Artefakt benötigt.

Praktische Schritte zur Umsetzung

Aktualisieren Sie Ihre Datei .gitlab-ci.yml: Verwenden Sie die oben gezeigte Konfiguration, um die bestehende .gitlab-ci.yml im Repository Ihres Taschenrechnerprojekts zu ersetzen oder anzupassen.

  • Pipeline testen: Committen und übertragen Sie die Änderungen, um die Pipeline in GitLab auszulösen. Die Jobs sollten in der durch die Stages festgelegten Reihenfolge ausgeführt werden, wobei test_job und deploy_job Zugriff auf alle von build_job erzeugten Artefakte haben.

  • Artefakte aufrufen: Nach dem Pipeline-Durchlauf können Sie die von build_job und test_job erzeugten Artefakte wie zuvor beschrieben über die GitLab-Oberfläche aufrufen.