【问题标题】:Gitlab CI pipeline failing: a tag issueGitlab CI 管道失败:标签问题
【发布时间】:2020-12-12 12:49:39
【问题描述】:

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

我已经在我的主分支上测试了管道,它运行良好并运行了测试。

但是我已经创建了一个新的功能分支,现在再次运行管道,但是我现在收到了这个错误

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 推送到功能分支。

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

【问题讨论】:

    标签: kubernetes continuous-integration yaml pipe


    【解决方案1】:

    根据您分享的内容,您已进行了以下配置:

    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 命令行没有任何有效的$FORMATTEDTAGLIST$IMAGE_LABELS

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

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

    一个技巧是用您的自定义分支覆盖$CI_DEFAULT_BRANCH

    ✌️

    【讨论】:

    • 谢谢。这在紧要关头帮助了我。
    猜你喜欢
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 2022-01-03
    • 2021-09-06
    • 1970-01-01
    相关资源
    最近更新 更多