GitLab 管道失败:未知选项:-c

时间:2021-01-29 15:57:08

标签: git gitlab gitlab-ci pipeline continuous-deployment

我创建了一个管道来运行一系列自动将我的应用程序部署到沙箱环境的作业。我对 .gitlab-ci.yml 的配置是:

stages:
  - pull
  - build

pull-code-job:
  stage: deploy
  script:
    - cd /usr/share/nginx/html
    - git pull http://myuser:mypassword@mydomain.com/user/my-app.git master

build-code-job:
  stage: deploy
  script:
    - npm install
    - npm run alpha

当我查看pipelines日志时,总是发现他们失败了:

Unknown option: -c

All output of pipeline

我不叫git -c

我的 GitLab CE 版本是 12.0.3,使用 runners 的 git 版本是 1.7.1。

1 个答案:

答案 0 :(得分:1)

对于您定义的每个作业,在您的任何脚本、before_script 或 after_script 部分运行之前,与管道关联的代码将始终被提取或克隆到作业环境中。如果您的作业应该针对存储库中的代码运行,则根本不必git clonegit pull;它会为你自动发生。您在作业中看到的输出来自此自动提取。

如果需要,您可以使用设置为 none 的 GIT_STRATEGY 变量禁用自动获取:

pull-code-job:
  stage: deploy
  variables:
    GIT_STRATEGY: none
  script:
    - cd /usr/share/nginx/html
    - git pull http://myuser:mypassword@mydomain.com/user/my-app.git master

对于此作业,不会从 Gitlab 获取/克隆存储库。如果您的管道中有另一个工作来提取您的代码,然后构建一个工件,如 npm 依赖项、从源代码编译的二进制文件等,这将非常有用。

由于您使用的是 shell 执行器,因此作业直接在运行器所在的主机上运行(而不是在 Docker 容器内)。查看 git usage 输出,该 git 版本似乎没有 -c 选项。尝试在运行您的 git ALPHA 的主机上升级 gitlab-runner 并再次运行您的管道。