Gitlab-runner 删除远程文件,尽管 .gitignore

Gitlab-runner deletes files on remote, despite .gitignore

我试图找到这个问题的解决方案,但找不到。

问题:

我们在 /public/img/InfoNews/example.png 中有图像文件,每次我们推送更新时 gitlab-runner 都会删除远程上的这些文件。

我们的 .gitignore 中有 /public/img/InfoNews 这会阻止 git 上传本地文件,但不会出于某种原因删除该文件夹中的远程文件。

我尝试将此路径添加到 .gitlab-ci.yml 中的缓存和工件,但没有成功

向正确的方向推动表示赞赏。

我们的.gitlab-ci.yml:

cache:
  paths:
    - vendor/
    - public/img/

deploy:
  stage: deploy
  script:
    - php artisan cache:clear
    - rm -rf vendor/
    - composer install
    - echo "$env" > "$(pwd)/.env"
    - php artisan migrate

  artifacts:
    paths:
      - .env
      - public/img/

编辑:

我也试过了

cache:
  untracked: true
  paths:
    - vendor/
    - public/img/

但它仍然会删除文件。

我自己修好了。

Gitlab-runner 在结帐后运行 git clean 并且无论出于何种原因默认忽略 .gitignore 文件。

为了防止文件被删除,您必须将其添加到您的 gitlab-ci.yml`:

variables:
  GIT_CLEAN_FLAGS: -x -f -e public/**

-x 忽略 .gitignore 文件 -f 强制清理,-e 从清理中排除文件,** 表示每个文件和文件夹