我在 GitLab CI 中成功完成另一项作业后启动一项作业时遇到问题

问题描述 投票:0回答:1

我有这样的 GitLab CI 配置

image: hmmmk/androidbuildenv-jdk17-api33:latest

stages:
  - build
  - deploy

# TODO: replace with assembleRelease
build_main:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
      - app/build/outputs/
  rules:
    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"'
      when: always
    - if: '$CI_COMMIT_REF_NAME == "main"'
      when: never

build_develop:
  stage: build
  script:
    - ./gradlew assembleDebug
  artifacts:
    paths:
      - app/build/outputs/
  rules:
    - if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
      when: always
    - if: '$CI_COMMIT_REF_NAME == "develop"'
      when: never

deploy_develop_telegram:
  stage: deploy
  script:
    - apk_file=$(find app/build/outputs/ -name "*.apk" | head -n 1)
    - echo "Sending $apk_file to Telegram..."
    - curl -F chat_id="-1" -F document=@"$apk_file" -F caption="New APK build from CI" https://api.telegram.org/botid/sendDocument
  needs: ["build_develop"]

问题是,在

deploy_develop_telegram
成功完成后,永远不会调用
build_develop
。我什至在 GitLab 仪表板中没有看到
deploy_develop_telegram
。我也尝试了不同的方法
rules
needs
但似乎没有任何效果。没有错误消息,什么也没有,看起来 GitLab 只是忽略了这项工作。

我做错了什么?

gitlab gitlab-ci
1个回答
0
投票

您希望该管道在什么工作流程中成功运行?

对我来说,运行

build_main and 
build_develop
are preventing
deploy_develop_telegram` 的规则。

此外,您可以重复这两个构建作业,作业脚本中没有明显的差异。也许您应该移动

deploy_develop_telegram
作业中的规则以防止其运行。

© www.soinside.com 2019 - 2024. All rights reserved.