Как исключить node_modules из артефактов, используя gitlab ci для фронтенд-проекта - PullRequest
0 голосов
/ 30 января 2019

есть проект, бэкэнд-коды в корне проекта.В то же время существует 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 в качестве артефактов.

...