У меня есть конвейер, в котором первые 2 этапа: один для сборки и один для модульных тестов в проекте Maven.
Два этапа могут можно суммировать следующими командами:
- [build]
mvn -s ci/settings.xml test-compile
- [unit_tests]
mvn -s ci/settings.xml verify
При запуске на локальном компьютере , первый выводит:
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 133 source files to <mydir>
, а второй, учитывая, что проект уже построен, печатает:
[INFO] Nothing to compile - all classes are up to date
, и это ожидаемое поведение и в GitLab.
Однако в GitLab происходит то, что этап модульных тестов печатает то же самое, что и этап сборки, а это означает, что он неправильно использует артефакт, который я экспортировал в предыдущий этап.
Это задание build :
build:
stage: build
image: maven:3.6-jdk-11
script:
- 'mvn -s ci/settings.xml test-compile'
except:
- tags
artifacts:
paths:
- target/
Это задание заканчивается следующим журналом:
Uploading artifacts...
target/: found 226 matching files and directories
Uploading artifacts as "archive" to coordinator... ok id=1964 responseStatus=201 Created token=qwYzjEeM
Это означает, что папка target была загружена правильно.
Это модульные тесты задание: * 104 5 *
junit:
stage: unit_tests
script:
- 'mvn -s ci/settings.xml verify'
artifacts:
reports:
junit:
- target/surefire-reports/TEST-*.xml
Это задание начинается со следующего журнала:
Downloading artifacts for build (1964)...
Downloading artifacts from coordinator... ok id=1964 responseStatus=200 OK token=qwYzjEeM
, что означает, что папка target была получена правильно (я также добавил ls -la target
, чтобы узнать, файлы были там, и они казались правильными).
Учитывая, что артефакты кажутся загруженными / загруженными правильно, почему задание unit tests восстанавливает весь проект?