Почему GitLab CI / CD игнорирует определенные файлы при передаче их в качестве артефакта? - PullRequest
1 голос
/ 10 января 2020

У меня есть простая настройка CI / CD для моего репозитория GitLab.

Во время задания build команды устанавливают NPM, запускают скрипт сборки, который использует Webpack для сборки JS / S CSS et c.

Затем, поскольку я не хочу, чтобы какие-либо исходные файлы загружались на мой сервер, я удаляю их вместе с некоторыми другими файлами, которые не нужны для развертывания.

Однако, когда родительский каталог htdocs загружен как артефакт, чтобы его можно было использовать в задании развертывания, когда я запускаю ls -la и ls ./assets -la в задании deploy, я все равно вижу все из файлов, которые я удалил ранее в задании build.

Когда я загружаю ZIP-файл артефакта из браузера, все верно, поскольку все мои ненужные файлы пропали.

Почему тогда я все еще вижу ОБА исходные и распределенные файлы в задании build? Это ошибка?

На данный момент это вызывает загрузку всех моих исходных файлов на мой сервер, а это не то, что я хочу. Кто-нибудь может помочь?

image: node:11.9.0

before_script:
  - cd ./htdocs

stages:
  - build
  - deploy

build:
  stage: build
  script:
    - npm install --quiet
    - npm run build
    - rm -rf node_modules assets/src
    - rm -r .??* package.json package-lock.json README.md webpack.*.js
  artifacts:
    paths:
      - ./htdocs/

deploy:
  stage: deploy
  cache: {}
  dependencies:
    - build
  script:
    - ls -la
    - ls ./assets/ -la

1 Ответ

0 голосов
/ 10 января 2020

Каждое задание в GitLab по умолчанию клонирует хранилище, а затем загружает любые артефакты, которые вы установили в зависимостях. Вы должны увидеть это в начале журнала заданий этапа deploy.

Чтобы остановить загрузку исходных файлов на этапе развертывания, вы можете установить для GIT_STRATEGY значение none.

Например:

deploy:
  stage: deploy
  cache: {}
  variables:
    GIT_STRATEGY: none
  dependencies:
    - build
  script:
    - ls -la
    - ls ./assets/ -la
...