当前位置: 首页 > 知识库问答 >
问题:

使用extends关键字时发生GitLab管道错误

岑俊弼
2023-03-14

在提交下一个测试时,我在GitLab管道上遇到了一个错误。gitlab ci。yml用于存储库。

  • 执行管道以构建解决方案、部署到Artifactory并触发和API调用
  • 部署作业必须手动执行,并且有两种不同的作业选项可供执行

stages:
  - build
  - deploy
  - trigger

variables:
    APP_PROJECT_ID: ${CUSTOMER_RELEASED}

build_job:
  stage: build
  tags:
    - dotnet
  script:
    - echo "build"
  only:
    - tags
  allow_failure: false

.deploy_job_base:
  stage: deploy
  needs: [build_job]
  tags:
    - dotnet
  script:
    - echo "deploy"
  dependencies:
    - build_job
  only:
    - tags

deploy_job_sport:
  extends: .deploy_job_base
  after_script:
    - $APP_PROJECT_ID = "2096"
  when: manual
  allow_failure: false

deploy_job_others:
  extends: .deploy_job_base
  after_script:
    - $APP_PROJECT_ID = "0"
  when: manual
  allow_failure: false

.trigger_base:
  stage: trigger
  script:
    - echo "Customer Project ID '{$APP_PROJECT_ID}'"
    - echo "Call API..."

trigger_sport:
  extends: .trigger_base
  needs: [deploy_job_sport]
  
trigger_others:
  extends: .trigger_base
  needs: [deploy_job_others]

在您的应用程序中发现错误。gitlab ci。yml:“触发运动”工作需要“部署工作运动”工作,但“部署工作运动”不在任何前一阶段“触发其他人”工作需要“部署工作其他人”工作,但“部署工作其他人”不在任何前一阶段

如果我删除trigger_sport和trigger_others作业,只创建一个作业,它可以正常工作,但我不知道如何将两个手动作业(deploy_job_sport和deploy_job_others)定位到一个作业。你知道吗?提前谢谢。

共有1个答案

钮轩昂
2023-03-14

我认为这与以下事实有关:您在模板中仅使用标记来部署作业,并且构建作业也仅限于在提交包含标记时运行。

但是触发器模板缺少这个限制,这很可能导致在没有标记的情况下推送提交时出现此错误,因为管道创建将向管道添加trigger_XY,管道依赖于以前的deploy_XY作业。

将触发器作业的作业模板更新为以下内容时,应解决此错误:

.trigger_base:
  stage: trigger
  script:
    - echo "Customer Project ID '{$APP_PROJECT_ID}'"
    - echo "Call API..."
  only:
    - tags

 类似资料:
  • 我对gitlab ci子管道有问题。需要在具有多个应用程序的repo中的每次提交后自动触发ci管道。需要配置以检测哪些文件夹/文件被修改,以便知道要触发哪个应用程序管道 结构示例 Main“.gitlab ci.yml”是: appA1".gitlab-ci.yml"是: appA2“.gitlab ci.yml”是: 这种配置的目的是,例如,当我在应用**中更改文件时,管道会检测到更改并生成应用

  • 本文向大家介绍Java继承extends与super关键字详解,包括了Java继承extends与super关键字详解的使用技巧和注意事项,需要的朋友参考一下 函数也称为方法! 继承:在java中使用extends关键字来表示继承关系。super用来继承父类方法和参数。 继承就是子类继承父类的特征和行为,使得子类具有父类相同的行为。 注意事项: 1、当一个类没有继承任何一个类时,系统默认继承Obj

  • 我在Android项目中工作,我使用gitlab。 我配置了 gitlab-ci.yml 文件,我尝试提交我的Android项目,但我在 gitLab 管道中遇到了问题。 我迁移我的代码,我正在尝试构建我的应用程序,但我收到下面的错误: 失败:构建失败,出现异常。 > < li> 哪里出错:配置项目时出现问题:app。您尚未接受以下SDK组件的许可协议:[constraint layout for

  • 我目前设置了一个 Jenkins 多分支管道作业,该作业基于 Gitlab 服务器上托管的 Git 存储库。Jenkins 可以读取存储库中的分支,并为存储库中的每个分支创建一个作业。但是我不知道如何在Gitlab中使用webhook触发作业。 我的问题是: > < li> 如何从Gitlab服务器触发在Jenkins中创建新的分支作业?我看不到一个新分支的webhook被推。 如何触发单个分支的

  • 问题内容: 关键字在Google Go中是什么意思? 问题答案: 2017更新 :解析器进行了重大更新,新的解析器似乎不再支持这些复活节彩蛋字眼。 对我来说,看起来像是一个复活节彩蛋: https://github.com/golang/go/blob/08e25fc1ba397e02ec776561ed73b7f9a8b94392/src/cmd/compile/internal/gc/lex.

  • 问题内容: 我目前正在尝试使我的java代码(使用eclipse)执行某些功能(如果说了某件事)。我正在使用Sphinx4库,这是我目前拥有的: 我想做的是在它说的那行: 如果我的发言是Hello Computer,Hello Jarvis,Good Morning Computer或Good Morning Jarvis,则运行该功能。或者换句话说,如果语音与.gram文件中的“ public