Недавно я настроил GitLab-CI в своем собственном экземпляре GitLab CE. Я создал одного участника для конкретного проекта и одного участника.
мой /etc/gitlab-runner/config.toml
является следующее:
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]
Затем я добавил свои скрипты composer.json
файл:
...
"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 ."}
И сценарий является частью моего .gitlab-ci.yml
файл:
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/
Когда я выполняю конвейер в GitLab, я получаю ошибку:
> 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
Теперь, когда я бегу composer lint
в местном масштабе это работает как ожидалось. Я также попытался закомментировать это, и я получаю ту же ошибку с PHPUnit (сборка: 7.0 в .gitlab-ci.yml). По причинам отладки я добавил php -d
отображать ошибки, пока ничего не отображается.
Другой (частный) конвейер работает, как ожидается, для меньшего проекта, который имеет точно такой же .gitlab-ci.yml
файл. Я также попытался переключиться с одного бегуна на другого, но он тоже не работает.
Поскольку я новичок в докере и CI в целом, у меня мало знаний о том, как правильно отладить эту ситуацию, возможно, увеличить php memory_limit
каким-либо образом или выводить ошибки в stderr.
Есть идеи?
Оказывается, был автозагрузчик, выполняющий функции ext-mysqli с @call. Приложение беспорядок.
Других решений пока нет …