есть проект, бэкэнд-коды в корне проекта.В то же время существует package.json. В папке resources
есть еще один package.json, который работает как другой проект, но имеет внешний и внутренний интерфейсы в одном и том же хранилище.как это
src/ # backend source code
resources/
- src # frontend source code
- package.json # package.json for frontend
package.json # package.json for backend
, и артефакты внешнего интерфейса включают в себя resources/node_modules
и resources/dist
.
Довольно устали.resources/dist
и resources/node_modules
оба добавлены в .gitignore.Таким образом, они оба "не отслежены"
Работает ли это, если я установлю build:frontend.artifacts.untracked
в false
?
и мой .gitlab-ci.yml
будет выглядеть так (упрощенно):
build:backend:
stage: build
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
untracked: true
paths:
- .... // the artifacts for backend
expire_in: 1 day
cache:
untracked: true
key: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
paths:
- ./node_modules
build:frontend:
stage: build
before_script:
- cd resources
- yarn
script:
- yarn build
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
untracked: true
paths:
- ./resources/dist
expire_in: 1 day
cache:
untracked: true
key: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
paths:
- ./resources/node_modules
Шаг сборки внешнего интерфейса должен загружать только ресурс / dist в качестве артефактов.