【问题标题】:Gitlab-runner deletes files on remote, despite .gitignoreGitlab-runner 删除远程文件,尽管 .gitignore
【发布时间】:2020-05-02 07:31:12
【问题描述】:

我试图找到解决此问题的方法,但找不到任何解决方案。

问题:

我们在/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-ci.yml吗?
  • @Rekovni 发布了您文件的内容
  • 它从本地删除文件?
  • @bahram 我没有本地文件,它们是上传到远程机器上的图像。我假设 gitlab-runner 每次都会进行硬重置,并删除所有不在 repo 中的东西,我无法停止它

标签: git gitlab gitlab-ci-runner


【解决方案1】:

我自己修好了。

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-03
    • 2018-10-01
    • 2011-12-21
    • 2015-05-15
    • 2021-07-08
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    相关资源
    最近更新 更多