Hier ist meine yml-Datei:
stages:
- testing
- deploy
docker_job:
stage: testing
tags:
- docker
image: atools/chrome-headless:java11-node14-latest
before_script:
- npm ci
- npx playwright install
- npm install allure-commandline --save-dev
script:
- npm run BookingTestDEV --project=BookingTesting
- npx playwright test --project=BookEngineTests
- npm run BookingTestNEO --project=BookingTesting
after_script:
- npx allure generate allure-results --clean
rules:
- when: always
allow_failure: true
artifacts:
when: always
paths:
-./allure-report
expire_in: 7 day
pages:
stage: deploy
script:
- mkdir public
- mv./allure-report/* public
artifacts:
paths:
- public
rules:
- when: always
Wenn das erste Skript - npm run BookingTestDEV --project=BookingTesting fehlschlägt, werden andere übersprungen, wie kann man sie trotzdem ausführen? Gibt es ein Analogon von if(): immer wie auf github?
Lösung des Problems
In den meisten Fällen sollte die Pipeline fehlschlagen, wenn einer der Befehle einen Exit-Code auslöst, der nicht 0 ist. In einigen Fällen sollten die restlichen Befehle jedoch trotzdem ausgeführt werden. Eine mögliche Lösung dafür wäre das Hinzufügen || true
am Ende des Befehls.
Zum Beispiel:
script:
- npm run BookingTestDEV --project=BookingTesting || true
- npx playwright test --project=BookEngineTests
- npm run BookingTestNEO --project=BookingTesting
Keine Kommentare:
Kommentar veröffentlichen