大厅 git-资源 ;访问 Git 标签以在 docker-image put 上使用
Concourse git-resource ; accessing a Git Tag to use on a docker-image put
我正在使用 https://github.com/concourse/git-resource 和 tag_filter 来触发发布版本。我需要访问触发构建的标签的标签名称,以便在构建过程中使用它,并使用它来标记 docker 图像资源放置操作。我该怎么做?
我可以 运行 git tag -l --points-at HEAD > tag
获取构建过程的标签,但是我如何访问它以获取 docker-image put 的标签 属性 ?
tag
parameter of the docker-image-resource 设置为获取包含标签名称的文件的路径。一种常见的模式是将其设置为 tag: a-git-resource/.git/HEAD
以使用 git sha 标记生成的 docker 图像。
要获得特定的名称,可能需要一个中间步骤:
jobs:
- name: build-docker-image
plan:
- get: a-git-resource
- task: prep-for-build
image: a-linux-of-your-choice-image
config:
platform: linux
inputs:
- name: a-git-resource
run:
path: sh
args: |
cd a-git-resource
git tag -l --points-at HEAD > tag
- put: docker-image-resource
params:
tag: a-git-resource/tag
tag_as_latest: true
build: a-git-resource
phillbaker 的解决方案理论上可行,但需要进行一些修改才能在当前(2020 年 8 月)版本的 Concourse 上运行。这是我使用他的代码作为起点构建的管道的片段:
resources:
- name: git-walangtext
type: git
source:
uri: git@bitbucket.org:wall-art/walangtext.git
branch: master
private_key: |
{{ bitbucket_walangtext_private_key }}
- name: walangtext-docker-image
type: docker-image
source:
email: {{ email }}
username: {{ username }}
password: {{ secret_docker_hub_password }}
repository: wallartnl/walangtext
jobs:
- name: walangtext
serial: true
plan:
- get: git-walangtext
trigger: true
- task: generate-tag
config:
platform: linux
image_resource:
type: docker-image
source:
repository: concourse/git-resource
inputs:
- name: git-walangtext
run:
path: sh
args:
- -c
- |
cd git-walangtext
git describe --tags --abbrev=0 > tag
outputs:
- name: git-walangtext
- put: walangtext-docker-image
params:
build: git-walangtext/src/WALangtextSite
dockerfile: git-walangtext/src/WALangtextSite/Docker/Dockerfile
tag_file: git-walangtext/tag
tag_as_latest: true
请注意,git-resource 图片对于它执行的简单操作来说太大了,我仍在寻找更小的图片。
另一个注意事项是我需要根据我的情况调整 git 命令:我需要获取最后一个标签,而不是恰好位于 HEAD 的标签。
我正在使用 https://github.com/concourse/git-resource 和 tag_filter 来触发发布版本。我需要访问触发构建的标签的标签名称,以便在构建过程中使用它,并使用它来标记 docker 图像资源放置操作。我该怎么做?
我可以 运行 git tag -l --points-at HEAD > tag
获取构建过程的标签,但是我如何访问它以获取 docker-image put 的标签 属性 ?
tag
parameter of the docker-image-resource 设置为获取包含标签名称的文件的路径。一种常见的模式是将其设置为 tag: a-git-resource/.git/HEAD
以使用 git sha 标记生成的 docker 图像。
要获得特定的名称,可能需要一个中间步骤:
jobs:
- name: build-docker-image
plan:
- get: a-git-resource
- task: prep-for-build
image: a-linux-of-your-choice-image
config:
platform: linux
inputs:
- name: a-git-resource
run:
path: sh
args: |
cd a-git-resource
git tag -l --points-at HEAD > tag
- put: docker-image-resource
params:
tag: a-git-resource/tag
tag_as_latest: true
build: a-git-resource
phillbaker 的解决方案理论上可行,但需要进行一些修改才能在当前(2020 年 8 月)版本的 Concourse 上运行。这是我使用他的代码作为起点构建的管道的片段:
resources:
- name: git-walangtext
type: git
source:
uri: git@bitbucket.org:wall-art/walangtext.git
branch: master
private_key: |
{{ bitbucket_walangtext_private_key }}
- name: walangtext-docker-image
type: docker-image
source:
email: {{ email }}
username: {{ username }}
password: {{ secret_docker_hub_password }}
repository: wallartnl/walangtext
jobs:
- name: walangtext
serial: true
plan:
- get: git-walangtext
trigger: true
- task: generate-tag
config:
platform: linux
image_resource:
type: docker-image
source:
repository: concourse/git-resource
inputs:
- name: git-walangtext
run:
path: sh
args:
- -c
- |
cd git-walangtext
git describe --tags --abbrev=0 > tag
outputs:
- name: git-walangtext
- put: walangtext-docker-image
params:
build: git-walangtext/src/WALangtextSite
dockerfile: git-walangtext/src/WALangtextSite/Docker/Dockerfile
tag_file: git-walangtext/tag
tag_as_latest: true
请注意,git-resource 图片对于它执行的简单操作来说太大了,我仍在寻找更小的图片。
另一个注意事项是我需要根据我的情况调整 git 命令:我需要获取最后一个标签,而不是恰好位于 HEAD 的标签。