Ich habe vor kurzem GitLab-CI in meiner selbst gehosteten GitLab CE-Instanz eingerichtet. Ich habe einen Läufer für ein bestimmtes Projekt und einen gemeinsamen Läufer erstellt.Gitlab-CI PHP ausführbare Datei Fehlercode 255 zurückgeben
Mein /etc/gitlab-runner/config.toml
folgt:
concurrent = 1
check_interval = 0
[[runners]]
name = "project runner"
url = "https://gitlab.domain.com/ci"
token = "SECRET"
executor = "docker"
[runners.docker]
tls_verify = false
image = "geertw/docker-php-ci:7.0-no-xdebug"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[[runners]]
name = "shared runner"
url = "https://gitlab.domain.com"
token = "SECRET"
executor = "docker"
[runners.docker]
tls_verify = false
image = "geertw/docker-php-ci:7.0-no-xdebug"
privileged = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
Dann habe ich eigene Skripte zu meiner composer.json
Datei:
...
"scripts": {
"build": [
"@composer install --no-progress --no-interaction --no-suggest",
"@lint"
],
"lint": "php -d display_errors -d display_startup_errors ./vendor/bin/parallel-lint --exclude vendor ."
}
und das Skript ist ein Teil meiner .gitlab-ci.yml
Datei:
before_script:
- php -v
services:
- mysql:latest
variables:
MYSQL_DATABASE: "database"
MYSQL_ROOT_PASSWORD: "password"
build:7.0:
image: geertw/docker-php-ci:7.0
script:
- composer build
- php vendor/bin/phpunit --coverage-text --colors=never
build:7.1:
image: geertw/docker-php-ci:7.1-no-xdebug
script:
- composer build
cache:
paths:
- vendor/
Wenn ich die Pipeline in GitLab ausführe, erhalte ich einen Fehler:
> php -d display_errors -d display_startup_errors ./vendor/bin/parallel-lint --exclude vendor .
Script php -d display_errors -d display_startup_errors ./vendor/bin/parallel-lint --exclude vendor . handling the lint event returned with error code 255
ERROR: Job failed: exit code 1
Wenn ich jetzt composer lint
lokal ausgeführt, es funktioniert wie erwartet. Ich habe auch versucht, es auskommentieren und ich bekomme den gleichen Fehler mit PHPUnit (build: 7.0 in .gitlab-ci.yml). Aus Gründen der Fehlersuche habe ich php -d
hinzugefügt, um Fehler anzuzeigen, aber nichts wird angezeigt.
Die andere (private) Pipeline funktioniert wie erwartet für ein kleineres Projekt, das dieselbe .gitlab-ci.yml
-Datei hat. Ich habe auch versucht, von einem Läufer zum anderen zu wechseln, aber es funktioniert auch nicht.
Da ich bin im Allgemeinen Andockfenster und CI, ich habe wenig Wissen darüber, wie richtig diese Situation zu debuggen, vielleicht PHP memory_limit in irgendeiner Weise oder Ausgabefehler auf stderr erhöhen.
Irgendwelche Ideen?
Kann die Quelle der Parallel-Lint Ihnen irgendwelche Hinweise geben ?: https://github.com/JakubOnderka/PHP-Parallel-Lint/blob/master/parallel-lint.php –
Auch; Ist display_errors usw. in Ihrem Container php.ini? Vielleicht werden deshalb keine Fehler angezeigt? –
Ich benutze Standard gitlab-ci php 7 Container und ehrlich gesagt weiß ich nicht, ob es display_errors aktiviert ist. Aber ich habe die 'php -d' hinzugefügt, die Direktive hinzufügt, um alle Fehler anzuzeigen. – falnyr