springio/artifactory-resourceArtifactory Resource是一个Concourse资源类型镜像,专门用于在Concourse CI/CD管道中与JFrog Artifactory制品仓库进行集成。通过该资源,用户可以在Concourse管道中实现对Artifactory仓库中制品的版本检测、下载(in操作)和上传(out操作),简化CI/CD流程中制品管理环节。
v1.0.0、v2.1.3等),对应仓库中的Release版本首先需要在管道配置中声明该资源类型:
yamlresource_types: - name: artifactory-resource type: docker-image source: repository: springio/artifactory-resource tag: <指定版本标签> # 例如 v0.14.0
在管道中定义具体的Artifactory资源实例,需指定Artifactory连接信息和制品路径:
yamlresources: - name: my-artifactory-artifact type: artifactory-resource source: url: [***] # Artifactory服务URL username: admin # Artifactory用户名(需有对应仓库操作权限) password: secret # Artifactory密码或API密钥 repository: my-repo # Artifactory仓库名称 repo_type: generic # 仓库类型,支持generic、maven、npm等 path: path/to/artifacts # 制品在仓库中的路径 # 可选:版本过滤,如正则表达式匹配版本号 version_regexp: "v(\\d+\\.\\d+\\.\\d+)"
在任务中通过get步骤下载制品:
yamljobs: - name: use-artifact plan: - get: my-artifactory-artifact trigger: true # 当制品版本更新时自动触发任务 - task: process-artifact config: platform: linux image_resource: type: docker-image source: {repository: alpine} inputs: - name: my-artifactory-artifact # 下载的制品会存放在此目录 run: path: sh args: - -c - | ls -l my-artifactory-artifact/ # 查看下载的制品
在任务中通过put步骤上传制品:
yamljobs: - name: build-and-upload plan: - task: build-artifact config: platform: linux image_resource: type: docker-image source: {repository: alpine} outputs: - name: build-output # 任务生成的制品存放目录 run: path: sh args: - -c - | echo "test artifact" > build-output/my-artifact-v1.0.0.txt - put: my-artifactory-artifact params: file: build-output/my-artifact-*.txt # 指定要上传的制品文件路径 # 可选:自定义上传后的制品名称 # target: custom-name.txt
| 参数 | 说明 | 是否必填 |
|---|---|---|
| url | Artifactory服务完整URL(如:[***] | 是 |
| username | Artifactory访问用户名 | 是 |
| password | Artifactory访问密码或API密钥 | 是 |
| repository | 目标Artifactory仓库名称 | 是 |
| repo_type | 仓库类型,支持:generic、maven、npm、docker等 | 是 |
| path | 制品在仓库中的基础路径(不包含文件名) | 是 |
| version_regexp | 版本号匹配正则表达式,用于从文件名中提取版本(如:"v(\d+\.\d+\.\d+)") | 否 |
| 参数 | 说明 | 是否必填 |
|---|---|---|
| file | 本地制品文件路径,支持通配符(如:build/*.tar.gz) | 是 |
| target | 上传到Artifactory后的文件名,不指定则使用原文件名 | 否 |
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务