Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
剪切新版本时如何触发GitLab CI/CD管道?_Gitlab_Gitlab Ci Runner_Gitlab Ce - Fatal编程技术网

剪切新版本时如何触发GitLab CI/CD管道?

剪切新版本时如何触发GitLab CI/CD管道?,gitlab,gitlab-ci-runner,gitlab-ce,Gitlab,Gitlab Ci Runner,Gitlab Ce,我正在将我的项目从GitHub.com迁移到自托管的GitLab CE实例。我之前设置了一个GitHub操作管道,以便在从标记中删除新版本时发布应用程序。也就是说,当我转到github.com///tags并编辑一个标记以发布发布版本时,以下*-workflow.yml脚本片段将触发我所需的操作: 关于: 发布: 类型:[已创建] GitLab CI/CD(.GitLab CI.yml)上的等价物是什么?我搜索了所有的辅助网站,比如gitlab.reddit.com和stackoverflow

我正在将我的项目从GitHub.com迁移到自托管的GitLab CE实例。我之前设置了一个GitHub操作管道,以便在从标记中删除新版本时发布应用程序。也就是说,当我转到
github.com///tags
并编辑一个标记以发布发布版本时,以下
*-workflow.yml
脚本片段将触发我所需的操作:

关于:
发布:
类型:[已创建]
GitLab CI/CD(
.GitLab CI.yml
)上的等价物是什么?我搜索了所有的辅助网站,比如gitlab.reddit.com和stackoverflow,但找不到任何方法。需要明确的是,在GitLab中将标记转换为真实版本的步骤如下:

  • 转到
    //-/releases/new
  • “创建自”列表中的任何标记
  • 填写细节
  • 点击“创建发布”按钮

  • 我希望GitLab在上面的第4步中立即执行我的
    脚本。

    我不确定GitLab是否有类似的功能,或者至少在文档中找不到任何内容

    解决方法可以是在创建标记后在CI管道中自动创建发布。因此,无论何时从特定分支创建标记,CI管道都将创建一个版本。您还可以使用
    $CI_COMMIT_标记
    值控制
    发布
    的创建

    release:
      stage: release
      script:
        - echo "Create release when a tag is created"
      rules:
        - if: '$CI_COMMIT_TAG' # Any tag is created
        - if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+\-release/' # A specific tag with 'vX.Y.Z-release' pattern is created
      release:
        name: 'My awesome release'
        tag_name: '$CI_COMMIT_TAG'
    
    有关使用CI管道创建新的
    版本的更多信息,请阅读文档中的本页:


    谢谢你的来电,雷扎。这是一个很好的解决方法,在需要发布每个匹配标记的情况下非常理想。您的建议将要求预先知道哪个版本将用于生产(例如,包括
    -release
    ),而不是在更多的手动测试或利益相关者批准后“升级”现有标签。我将不回答这个问题,因为理想情况下,我希望在创建上述版本时触发构建。希望还有别的办法。是的,你说得对。但是,我认为,如果你找不到任何其他解决方案,你仍然可以考虑一个特定的释放标签,经过良好的测试,并准备释放。然后,您可以使用此解决方案触发管道并创建新的
    发行版
    。如果您没有找到任何其他解决方案,或者如果我的答案对您有所帮助,请接受或更新答案:)这将大大有助于我提高声誉。嗨,Reza,我高估了你的答案,因为我知道你尽了最大努力,我真诚地感谢你的回应。我将暂时不回答这个问题,以向其他人发出信号,表示我仍在GitLab上寻找正确的功能,如果它存在的话。