Где хранить файл settings.xml для maven в настройке GitLab CI в докере - PullRequest
0 голосов
/ 15 января 2019

У меня есть несколько проектов maven (не мультимодулей), которые находятся в GitLab. Мне нравится настраивать GitLab CI для этих проектов, поэтому я посмотрел на файлы gitlab-ci.yml, как это сделать.

Я нашел https://docs.gitlab.com/ee/ci/examples/artifactory_and_gitlab,, который описывает, как поместить settings.xml в сам проект, а затем отослать его в файл gitlab-ci.

Но мне было интересно, как это сделать, когда несколько проектов нуждаются в этом settings.xml, поскольку размещение его в хранилище несколько раз кажется плохим.

Локально у меня есть это в моем каталоге .m2, но как и где поместить это на сервер gitlab для конвейера?

1 Ответ

0 голосов
/ 22 января 2019

Я подключаю том хоста через config.toml, как показано в следующем примере: -

concurrent = 1
check_interval = 30

[[runners]]
  name = "some-name"
  url = "url/to/gitlab/"
  token = "some-token"
  executor = "docker"
  [runners.docker]
    tls_verify = false
    image = "some-maven-image"
    privileged = false
    disable_cache = false
    volumes = ["...", "path/to/host/dir:/some/name:rw"]
    pull_policy = "if-not-present"
    shm_size = 0
  [runners.cache]

Хотя path/to/host/dir - это путь на хост-компьютере, который содержит много файлов, в том числе с settings.xml, settings-security.xml и т. Д., В зависимости от требований проекта. С другой стороны, /some/name - это каталог внутри докера.

На .gitlab-ci.yml я предоставляю before_script в качестве следующего примера: -

before_script:
  - cp -f /some/name/settings.xml  $HOME/.m2/settings.xml
  - cp -f /some/name/settings-security.xml $HOME/.m2/settings-security.xml
  - ...
after_script:
  - rm -f $HOME/.m2/settings.xml
  - rm -f $HOME/.m2/settings-security.xml
  - ...

Пожалуйста, посетите Расширенные настройки для получения дополнительной информации о config.toml.

...