Для второй части вашего вопроса:
Как мне указать файл application.properties c для удаленного компьютера в моем .gitlab-ci.yml
Задания в GitLab CI клонируют ваш репозиторий git, а затем выполняют сценарии командной строки. Вы можете либо включить весь файл в свой репозиторий git, либо каким-то образом оставить его отдельно. Одна альтернатива - использовать переменную окружения типа файла в GitLab . Информация в файле будет храниться за пределами git, что хорошо, если этот файл содержит секреты.
Когда у вас есть файл, доступный в вашем задании GitLab, вы сможете выполнить команду просто как если бы вы использовали командную строку на своем локальном компьютере.
Для первой части вашего вопроса:
Должен ли конвейер CI CD быть реализован также для проекта B? В настоящее время он не реализован для проекта B
Да. Реализовать конвейер также для проекта B. Для вас должно быть довольно просто создать конвейер для проекта B, который собирает и хранит артефакты для этого проекта. Затем проект A может загрузить эти файлы с помощью GitLab API . Короткий пример, который я не тестировал, но который должен поставить вас на правильный путь:
//.gitlab-ci.yml of Project B
build_master:
script:
- make
artifacts:
paths:
- project_b_jars
only:
refs
- master
//.gitlab-ci.yml of Project A
build:
script:
- 'curl --location --output artifacts.zip --header "JOB-TOKEN: $CI_JOB_TOKEN" "https://gitlab.example.com/api/v4/projects/<PROJECT_B_PROJECT_ID>/jobs/artifacts/master/download?job=build_master"'
Я думаю, что это решение самое простое в настройке и соответствует вашим потребностям. Если у вас есть это, вы также можете расширить многопроектный конвейер, если вам это нужно.
Другой альтернативой является установка PROJECT_B в качестве подмодуля PROJECT_A. После этого вы полностью контролируете, какая версия PROJECT_B используется в PROJECT_A, что хорошо, если вы работаете, например, с микропрограммой.