Почему работа бегуна GitLab не выполняется более чем с одной задачей? - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь запустить этапы build и test в моем файле .gitlab-ci.yml. На данный момент у меня невероятно простая настройка, но я впервые использую gradle.

Первоначально у меня был следующий файл:

Не работает .gitlab-ci.yml

job:
    script:
        - gradle build

Это не удалось по причинам, которые я не могу Не понимаю, но я предполагаю, что проблемы с правами доступа достигают каталога .gradle.

Исправление:

Работает .gitlab-ci.yml

job:
    script:
        - gradle build - gradle build -g gradle-user-home

Добавление флага -g решило проблему, и сборка прошла успешно. Однако при попытке запустить другой этап, например test, возникают сбои.

Не работает .gitlab-ci.yml

stages:
    - build
    - test

gradle-build:
    stage: build
    script:
        - gradle build -g gradle-user-home

gradle-test:
    stage: test
    script:
        - gradle test -g gradle-user-home

Если я удаляю один из этапов, другой этап прекрасно работает в одиночку. Первый будет работать нормально, а второй даже не показывает скрипт, который он пытался запустить, я просто получаю следующую ошибку:

Running with gitlab-runner 12.4.1 (05161b14)
  on my-runner abcdefg
Using Shell executor...
Running on my-runner...
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in /home/gitlab-runner/builds/abcdefg/0/user-name/project/.git/
from http://gitlab/user-name/project
    70077bc..4xyz master -> origin/master
Checking out 4dbf9934 as master...
warning: failed to remove gradle-user-home/daemon/5.6.2: Directory not empty
warning: failed to remove gradle-user-home/caches/journal-1: Directory not empty
etc... (6 more lines of this)
Removing .gradle/
Removing gradle-user-home/daemon/5.6.2/daemon-19142.out.log
etc... (20 more lines of this)
ERROR: Job failed: exit status 1

Как я уже сказал, это сбивает с толку, потому что если я запускаю каждый из них работает по отдельности, но если у меня они есть в файле одновременно, это происходит, и другие задания пропускаются. Я предполагаю, что это как-то связано с разрешениями пользователя gitlab-runner на бегуне, но я не уверен, как решить эту проблему. Кажется, что пользователь gitlab-runner создал бы gradle-user-home, который он не может удалить, поэтому я не уверен, почему это так. Я проверил, и, как и ожидалось, пользователь gitlab-runner владеет всем внутри каталога builds.

...