1

我有一个 git 标签列表

0.0.1
0.0.1-rc.0
0.0.1-rc.1
0.1.0
0.10.0
0.10.1-rc.0
0.11.0
0.11.1-rc.0
0.12.0
0.12.1-rc.0
0.13.0
0.13.1-hotfix.0
0.13.1-rc.0
0.14.0
0.14.1-rc.0
0.15.0
0.15.1-rc.0
0.16.0
0.16.1-rc.0
0.17.0
0.17.1-rc.0
0.18.0
0.18.1-hotfix.0

从这些标签中,我只想获得以下标签:

0.0.1, 0.1.0, 0.10.0 , 0.11.0, 0.12.0, 0.13.0, 0.14.0, 0.15.0, 0.16.0, 0.17.0, 0.18.0, 0.10.0

我声明我的资源如下:

- name: git-filtered
  type: git
  icon: bitbucket
  source:
    uri: ssh://((git-url))
    private_key: ((git-key))
    branch: master
    fetch_tags: true
    tag_regex: "[0-9]+.[0-9]+.[0-9]+"

我已经尝试了所有这些解决方案:

#    tag_regex: "[[:digit:]]+\\.[[:digit:]]+\\.[[:digit:]]+"
#    tag_filter: "[0-9].??.[0-9]"
#    tag_filter: "*([0-9])\\.*([0-9])\\.*([0-9])"
#    tag_filter: "*([0-9])\.*([0-9])\.*([0-9])"
#    tag_filter: "*([0-9]).*([0-9]).*([0-9])"
#    tag_regex: "[0-9]+\\.[0-9]+\\.[0-9]+"
#    tag_regex: "[0-9]+\.[0-9]+\.[0-9]+"
#    tag_regex: "[0-9]\.[0-9]\.[0-9]"
#    tag_regex: "[0123456789]+.[0123456789]+.[0123456789]+"
#    tag_filter: "[0-9].??.[0-9]"

他们似乎都没有按照我的意愿过滤数字(digits.digits.digits)。

我已将此行用作构建过滤器的参考:https ://github.com/concourse/git-resource/blob/master/assets/check#L168 。

任何想法 ?

4

1 回答 1

1

我发现出了什么问题。

tag_regex 是从 git-resource 的 1.11.0 版本开始引入的。

我们的大厅服务器使用旧版本的 git 资源。所以我强制版本如下:

  - name: git
    type: docker-image
    source:
      repository: concourse/git-resource
      tag: "1.12.0" 

现在使用正则表达式的过滤器工作正常:

tag_regex: '[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+'
于 2021-02-15T19:38:48.647 回答