2017-06-04 1 views
0

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?

+0

Kann die Quelle der Parallel-Lint Ihnen irgendwelche Hinweise geben ?: https://github.com/JakubOnderka/PHP-Parallel-Lint/blob/master/parallel-lint.php –

+0

Auch; Ist display_errors usw. in Ihrem Container php.ini? Vielleicht werden deshalb keine Fehler angezeigt? –

+0

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

Antwort

0

Es stellte sich heraus, dass es einen Autoloader gab, der ext-mysqli-Funktionen mit @call ausführte. Die App ist ein Durcheinander.

Verwandte Themen