通过Concourse流水线获取JFrog制品时遇版本为空问题
Concourse Artifactory资源报错:"empty version - return current version"
问题情况
用Concourse搭建了包含Git和JFrog Artifactory资源的流水线,测试artifactory-resource时一直出现错误提示empty version - return current version,对应流水线路径为deploying-rds-isntance-from-jfrog-artifact/ea-rds-jfrog-repo,尝试添加version参数后问题仍未解决。
流水线配置
groups: - name: all jobs: - set-pipeline - trigger-when-new-file-is-added-to-artifactory jobs: - name: set-pipeline serial: true plan: - in_parallel: - get: ea-terraform-module-aws-rds trigger: true - set_pipeline: deploying-rds-instance-from-jfrog-artifact file: ea-terraform-module-aws-rds/examples/concourse/ea-terraform-module-aws-rds.yml - name: trigger-when-new-file-is-added-to-artifactory plan: - get: ea-rds-jfrog-repo - task: use-new-file config: platform: linux image_resource: type: docker-image source: repository: ubuntu inputs: - name: ea-rds-jfrog-repo run: path: cat args: - "./ea-rds-jfrog-repo/ea-terraform-module-aws-rds*.zip" resource_types: - name: artifactory type: docker-image source: repository: pivotalservices/artifactory-resource resources: - name: ea-rds-jfrog-repo type: artifactory check_every: 1m source: endpoint: https://xxx.jfrog.io/artifactory repository: "ea-terraform-module-aws-rds-1.4.0.zip" regex: "ea-terraform-module-aws-rds-(?<version>.*).zip" username: ${JF_USER} password: ${JF_PASSWORD} - name: ea-terraform-module-aws-rds type: git source: private_key: ((github_private_key)) uri: git@github.com:xxx/xxx branch: SAAS-27134
问题原因与解决办法
- 核心问题:Artifactory资源的
repository字段配置错误!该字段应填写Artifactory中的仓库名称,而非具体文件名。当前配置填写的是ea-terraform-module-aws-rds-1.4.0.zip,导致资源无法定位正确的仓库路径,进而无法提取版本号,触发空版本错误。 - 修复步骤:
- 修改
ea-rds-jfrog-repo资源的source.repository为实际的Artifactory仓库名称,比如若模块文件存储在ea-terraform-modules仓库中,就填写该仓库名。 - 确认仓库内的文件命名符合
regex规则,当前正则ea-terraform-module-aws-rds-(?<version>.*).zip可正确匹配版本号,只需确保文件命名规范即可。 - 若需指定特定版本,可在
get步骤中添加version参数,示例:- get: ea-rds-jfrog-repo version: { exact: "1.4.0" } - 重新设置流水线并触发检查,验证资源是否能正常获取版本。
- 修改
内容的提问来源于stack exchange,提问作者Silvia
相关产品推荐
相关产品推荐

