我正在我的Gitlab服务器上运行一个ci任务。其中一个操作是在生成运行计算机上调用一个exe,它会进行一些更新。
我通过SHA1s从$CI_COMMIT_BEFORE_SHA和$CI_COMMIT_SHA以及代码调用:
git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA
通常,它会给出一个文件名列表,这些文件名在提交过程中发生了更改,但有时我得到了错误:
fatal: bad object abcd1234
^
|-- This is the $CI_COM
我正在尝试设置一个对接运行程序,并成功地注册了gitlab。但是,当作业运行时,它总是失败,如下所示:
Running with gitlab-ci-multi-runner 1.10.2 (d171b73)
Using Docker executor with image python:3.4 ...
Starting service postgres:latest ...
Pulling docker image postgres:latest ...
Waiting for services to be up and running...
Pulling docker image pyt
我使用下面的命令来获得两个分支之间的差异,使用两个点方法。
git diff master..hotfix_master
在gitlab管道中,使用相同的命令,它将失败
> $ git diff hotfix_master..master fatal: ambiguous argument
> 'hotfix_master..master': unknown revision or path not in the working
> tree. Use '--' to separate paths from revisions, like th
我已经把Gitlab升级到8.0版了。还将CI集成到Gitlab中。但是现在,当CI运行程序试图获取git存储库时,它会得到空的存储库。对于不推荐的运行程序(我之前使用的)和新的gitlab-ci-multi-runner,都发生了错误
我有错误
gitlab-ci-multi-runner 0.5.5-1-g69bc934 (69bc934)
Using Shell executor...
Running on my_server...
Fetching changes...
Checking out 9f6188d0 as super_branch...
fatal: reference
我有一个名为test_branch的新分支,包含多个提交,我希望将它合并到master分支。在合并之前,我需要了解test_branch和master分支与GitLab CI之间的区别。
我试图使用下面的命令,但失败了:
# the variable $CI_COMMIT_MESSAGE is "Merge branch 'test_branch' into 'master'" so I can get the new branch name
git diff $(echo $CI_COMMIT_MESSAGE | awk -F "
我的gitlab-ci.yml中有以下命令,它在每个已更改提交的php文件上运行'php -l‘:
test:
stage: test
script:
- for file in $(git diff --name-only HEAD HEAD~1 | egrep "\.php$"); do php -l $file; done
我遇到的问题是,如果一个php文件被删除,它也会尝试将其链接起来,但是由于文件不存在而失败了。
如何才能让它只检查已更改的PHP文件?
这方面似乎有很多信息,但我找不到一个描述得很好的用例,它采用了现代的方法(也就是说,在过程中不留下痕迹或公开凭据)。
让我们假设我是在GitLab组内工作的。在这样一个组中有两个存储库,A和B。
我想要为项目B的GitLab容器注册表(甚至是最高级别的组之一)构建一个坞映像。
项目B需要项目A,它只能从它的存储库中获得,所以目前我的Dockerfile看起来是这样的,
# Set the base image
FROM ubuntu:18.04
# Install git
RUN apt-get -y update && apt-get install -y git
# C
我试图在Gitlab CI中运行一个构建脚本,但是它抱怨一个语法错误,我不明白。
这是我在Gitlab中配置的脚本:
# test syntax of all *.php and *.ctp files
for f in $(find . -name "*.php" -or -name "*.ctp")
do
php -l $f
done
这是Gitlab提交后的输出:
cd /opt/gitlab-runner/embedded/service/gitlab-runner/tmp/builds/project-1 && git res