Gitlab CI для проекта MAVEN с Docker Image - PullRequest
3 голосов
/ 25 мая 2019

У меня есть проект на Java, где у меня есть свои тесты.Теперь у меня есть .gitlab-ci.yml:

image: maven:latest

stages:
  - build

build:
  stage: build
  script:
    - mvn test-compile compile
  tags:
    - mytag
  only:
    refs:
      - dev

Каждый раз, когда я делаю коммит в своем репо, я жду много времени, когда он загрузит все зависимости.В докере мы можем использовать параметр громкости.Вопрос: Могу ли я скачать и скомпилировать локально этот проект для создания каталога .m2, и могу ли я использовать этот каталог в моем .gitlab-ci.yml.Если да, можете ли вы помочь мне, как, потому что я не нашел в Интернете примеров в соответствии с ним.

Я внес изменения в моем /etc/gitlab-runner/config.toml:

  [runners.docker]
    tls_verify = false
    image = "maven:latest"
    privileged = true
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/cache","/M2/.m2:/root/.m2"]
    shm_size = 0

/M2/ являетсяdir, с владельцем gitlab-runnerНо это не помогает, как мы можем видеть:

Downloaded from central: https://repo.maven.apache.org/maven2/org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom (2.0 kB at 20 kB/s)
Downloading from atlas: https://dl.bintray.com/qameta/maven/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Downloading from nio: http://clojars.org/repo/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Downloading from central: https://repo.maven.apache.org/maven2/org/seleniumhq/selenium/selenium-java/3.8.1/selenium-java-3.8.1.pom
Progress (1): 2.2/5.9 kB
Progress (1): 5.0/5.9 kB
Progress (1): 5.9 kB    

1 Ответ

2 голосов
/ 25 мая 2019

шагов: (хост-машина - машина gitlab - бегун установлен и бегун подписан)

  1. клонировать ваш репозиторий на хост-компьютере
  2. скомпилируйте его с Maven
  3. проверьте, что на хост-компьютере есть папка с кэшированными данными в /root/.m2
  4. исправь свой config.toml добавь эту строку

volume = ["/cache","~/.m2:/root/.m2"]

  1. затем добавьте в .gitlab-ci.yml
cache:
  paths:
    - /root/.m2/

variables: MAVEN_OPTS: "-Dmaven.repo.local=.m2"

.gilatb.yml должен выглядеть следующим образом

https://stackoverflow.com/a/40024602/4267015

...