Gradle жалуется на отсутствие jar только во время работы CI - PullRequest
0 голосов
/ 08 мая 2020

Я запускаю gradle assemble в задании gitlab:

image: gradle:alpine

variables:
  GRADLE_OPTS: "-Dorg.gradle.daemon=false"
  GIT_SUBMODULE_STRATEGY: normal

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

build:
  stage: build
  script:
    - gradle assemble
  artifacts:
    paths:
      - build/libs/*.jar

after_script:
    - ls -R

gradle assemble не показывает проблем и отлично работает на моей физической машине, но на бегунке я получаю следующее:

Execution failed for task ':jar'.
> Failed to create MD5 hash for file '/builds/project/subproject/build/libs/subproject.jar' as it does not exist.

Где подпроект - это подмодуль git.

Я ожидаю, что проект будет просто строиться, как и локально, есть идеи?

Редактировать

Добавление моего файла .gitmodules:

[submodule "submodule"]
    path = submodule
    url = https://github.com/thechubbypanda/submodule.git

Все файлы для подмодуля существуют до запуска скрипта gradle

Ответы [ 2 ]

0 голосов
/ 09 мая 2020

Если вы используете GitLab 8.12+ и ваш подмодуль находится на том же сервере GitLab, вы должны обновить файл .gitmodules, чтобы использовать относительные URL-адреса. Поскольку Git позволяет использовать относительные URL-адреса для вашей конфигурации .gitmodules, это легко позволяет вам использовать HTTP (S) для клонирования всех ваших заданий CI и S SH для всех ваших локальных проверок. Модули .gitmodules будут выглядеть так:

[submodule "project"]
  path = project
  url = ../../group/project.git

Полное объяснение здесь: https://docs.gitlab.com/ee/ci/git_submodules.html

попробуйте изменить GIT_SUBMODULE_STRATEGY на рекурсивный, как в примере ниже

  GIT_SUBMODULE_STRATEGY: recursive
0 голосов
/ 08 мая 2020

Вы забыли запустить команду для извлечения всех подмодулей:

Сделайте это и в своем before_script:

git submodule sync --recursive
git submodule update --init --recursive

Также убедитесь, что вы объявили подмодули в своем .gitmodules файл.

См. https://docs.gitlab.com/ee/ci/yaml/README.html#git -submodule-strategy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...