在GitLab中作业结束后下载工件

在GitLab中作业结束后下载工件,gitlab,gitlab-ci,gitlab-ce,Gitlab,Gitlab Ci,Gitlab Ce,我的管道中有两个作业,一个是创建Android应用程序apk并将其保存在工件中,另一个是调用外部API以通知它新工件 这是我的gitlab-ci.yaml的一部分 assembleProdRelease: stage: prod_release script: - ./gradlew assembleProdRelease artifacts: paths: - app/build/outputs/apk/ only: - prod

我的管道中有两个作业,一个是创建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,我下载工件时,它会获取之前运行的管道的内容,我如何修复和下载当前管道的工件?

我没有向管道内的API发送请求,而是触发了一个webhook,通知API管道的状态(已启动、已完成、失败等)基于此,我下载了这个工件。但是我不得不将下载URL添加到我的后端代码中。

1。确保阶段顺序正确,以便UpdateReleaseMagmt作业在创建工件2的作业之后运行。UpdateReleaseMagmt作业没有“only”键,但assembleProdRelease有。确保UpdateReleaseMagmt作业仅在另一个作业实际更新工件3之后运行。如果您可以控制目标服务器,您可以直接将工件发送到您的服务器,而不是发送用于下载的链接。