Gitlab CI 管道失败:标签问题

Gitlab CI pipeline failing: a tag issue

我的 gitlab CI 管道设置为 运行 从我的 maven 项目创建的 docker 图像进行 maven 测试。

我已经在我的 master b运行ch 上测试了管道,它工作正常并且 运行 测试。

但是我创建了一个新功能 b运行ch,现在又 运行 连接了管道,但是我现在收到这个错误

error checking push permissions -- make sure you entered the correct tag name, and that you are authenticated correctly, and try again: getting tag for destination: repository can only contain the runes `abcdefghijklmnopqrstuvwxyz0123456789_-./`: it2901/cs344-maven:feature/produce-allocation-pdf
ERROR: Job failed: command terminated with exit code 1

我似乎根本无法查明问题所在。我也将标签:tut3 推送到功能 b运行ch。

这是我的.gitlab-ci.yml:https://controlc.com/7a94a00f

根据您分享的内容,您已配置:

VERSIONLABELMETHOD: "tut3" # options: "","LastVersionTagInGit"

应该是:

VERSIONLABELMETHOD: ""

VERSIONLABELMETHOD: "LastVersionTagInGit"

VERSIONLABELMETHOD: "OnlyIfThisCommitHasVersion"

当您指定 "tut3" 时,脚本会将其视为 ""(空字符串).假设您没有在任何地方定义 $VERSIONLABEL $ADDITIONALTAGLIST 也将为空。

稍后在代码中您可以看到它被执行了:

if [[ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]]; then ADDITIONALTAGLIST="$ADDITIONALTAGLIST latest"; fi

假设 $CI_DEFAULT_BRANCH 设置为 master 如果您使用单独的分支 mybranch 上面的代码将不会执行,因此 Kaniko 命令行可能没有any a 既不是有效的 $FORMATTEDTAGLIST 也不是 $IMAGE_LABELS.

您可以通过在调用 Kaniko 之前查看脚本的输出来进行调试:

...
echo $FORMATTEDTAGLIST
echo $IMAGE_LABELS
mkdir -p /kaniko/.docker
...

黑客可以用您的自定义分支覆盖 $CI_DEFAULT_BRANCH

✌️