【发布时间】:2021-06-29 05:11:35
【问题描述】:
我的 Pipeline 中有两项工作,一项是创建 Android 应用程序 apk 并将其保存在工件中,另一项是调用外部 API 以通知它新的工件。
这是我的 gitlab-ci.yaml 的一部分
assembleProdRelease:
stage: prod_release
script:
- ./gradlew assembleProdRelease
artifacts:
paths:
- app/build/outputs/apk/
only:
- prod
updateReleaseMgmt:
stage: update_release_mgmt
before_script:
- ''
script:
- JOBNAME=assemble"${CI_COMMIT_REF_NAME^}"Release
- |
curl --header "Content-Type: application/json" --request PUT --data '{"download_link": "https://xxxxxxxxxxxxx/api/v4/projects/30/jobs/artifacts/'$CI_COMMIT_REF_NAME'/download?job='$JOBNAME'", "access_token": "xxxxxxx", "branch": "$CI_COMMIT_REF_NAME"}' http://xxxxxxxxx/releases
当向我的 API 发送请求并下载工件时,它会获取上一个运行管道的内容,我如何修复和下载当前管道的工件?
【问题讨论】:
-
1.确保您的阶段顺序正确,以便您的 updateReleaseMgmt 作业在创建工件的作业之后运行 2. 您的 updateReleaseMgmt 作业没有“唯一”键,但您的 assembleProdRelease 有。确保您的 updateReleaseMgmt 作业仅在另一个作业实际更新了工件后运行 3. 如果您可以控制目标服务器,则可以将工件直接发送到您的服务器,而不是向其发送下载链接。
标签: gitlab gitlab-ci gitlab-ce