我有这样的 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 只是忽略了这项工作。
我做错了什么?
您希望该管道在什么工作流程中成功运行?
对我来说,运行
build_main and
build_developare preventing
deploy_develop_telegram` 的规则。
此外,您可以重复这两个构建作业,作业脚本中没有明显的差异。也许您应该移动
deploy_develop_telegram
作业中的规则以防止其运行。