
cfje/artifactory-resourceArtifactory Concourse Resource是专为Concourse CI/CD平台设计的资源类型,用于与JFrog Artifactory制品仓库深度集成。通过该资源,用户可在Concourse管道中实现对Artifactory制品的自动化管理,包括制品的上传、下载、版本跟踪及元数据操作,无缝衔接CI/CD流程中的构建、测试与部署环节。
在Concourse Pipeline配置(pipeline.yml)中,通过resource_types声明资源类型(若未全局注册),并在resources中定义Artifactory资源实例。
yamlresource_types: - name: artifactory-resource type: docker-image source: repository: releases-docker.jfrog.io/jfrog/artifactory-concourse-resource tag: latest # 建议指定具体版本,如v1.15.0
yamlresources: - name: my-artifactory-artifact type: artifactory-resource source: url: [***] # Artifactory实例URL username: ((artifactory-username)) # 访问凭据(通过Concourse Credentials Manager注入) password: ((artifactory-password)) repo: my-generic-repo # Artifactory仓库名称(需提前创建) path: my-apps/ # 制品存储路径(支持通配符,如my-apps/*.tar.gz) # 可选配置 pattern: "*.tar.gz" # 制品文件名匹配模式(若path中未包含) build_name: my-app-build # 关联的构建名称(用于元数据关联) build_number: ((build-number)) # 构建编号(可通过任务输出注入) properties: # 制品元数据属性(键值对) environment: production team: backend
Artifactory资源支持Concourse资源的三种标准操作:check(版本检测)、in(制品输入)、out(制品输出)。
自动检测Artifactory中符合source.path和pattern的制品版本,返回最新版本信息(按修改时间或版本号排序)。
触发条件:Pipeline启动、定时触发或手动触发。
输出:版本列表(含制品路径、修改时间、版本号等)。
将Artifactory中的制品下载至Concourse任务工作目录。
任务配置示例:
yamljobs: - name: download-artifact plan: - get: my-artifactory-artifact trigger: true # 检测到新版本时自动触发 - task: use-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/ # 列出下载的制品
将Concourse任务生成的制品上传至Artifactory。
任务配置示例:
yamljobs: - name: upload-artifact 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 "hello world" > build-output/my-app-v1.0.0.tar.gz # 生成示例制品 - put: my-artifactory-artifact params: file: build-output/*.tar.gz # 待上传制品路径(相对于任务输出目录) # 可选参数 flatten: true # 是否移除本地目录结构,仅上传文件 props: # 覆盖或追加元数据属性 version: 1.0.0 commit: ((git-commit-sha))
| 参数路径 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| source.url | string | Artifactory实例基础URL(如https://<domain>/artifactory) | 是 |
| source.username | string | Artifactory访问用户名(需有仓库读写权限) | 是 |
| source.password | string | Artifactory访问密码或API密钥 | 是 |
| source.repo | string | 目标Artifactory仓库名称(如my-docker-repo、my-maven-repo) | 是 |
| source.path | string | 制品在仓库中的存储路径(支持子目录,如apps/spring-boot/) | 是 |
| source.pattern | string | 文件名匹配模式(如*.jar、v*.tar.gz),与path配合筛选制品 | 否 |
| source.properties | map | 制品元数据属性(键值对),上传时附加至制品 | 否 |
| params.file | string | out操作中待上传的本地文件路径(支持通配符) | 是(out操作) |
| params.flatten | bool | out操作是否移除本地目录结构,仅保留文件名上传 | 否 |
| params.props | map | out操作中追加/覆盖的元数据属性(优先级高于source.properties) | 否 |
username/password,通过Concourse Credentials Manager(如Vault、CredHub)或环境变量注入敏感信息。read权限用于in操作,write权限用于out操作)。https协议,避免传输过程中凭据或制品数据泄露。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务