Я пытаюсь запустить этапы 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
.