Gitlab Ci include local 只在最后执行

Gitlab Ci include local only executes last

我有很多不同的 android 风格来构建一个应用程序,所以我想将构建拆分成不同的 yml 文件。我目前有我的基本文件 .gitlab-ci.yml

image: alvrme/alpine-android:android-29-jdk11

variables:
  GIT_SUBMODULE_STRATEGY: recursive

before_script:
    - export GRADLE_USER_HOME=`pwd`/.gradle
    - chmod +x ./gradlew
    
cache:
  key: "$CI_COMMIT_REF_NAME"
  paths:
     - .gradle/

stages:
  - test
  - staging
  - production
  - firebaseUpload
  - slack

include:
  - local: '/.gitlab/bur.yml'
  - local: '/.gitlab/vil.yml'
  - local: '/.gitlab/kom.yml'

我目前正在尝试制作 3 种不同的口味。但我不知道为什么只执行最后包含的 yml 文件。前 2 个被忽略。

/.gitlab/bur.yml

unitTests:
  stage: test

  script:
    - ./gradlew testBurDevDebugUnitTest

/.gitlab/vil.yml

unitTests:
  stage: test

  script:
    - ./gradlew testVilDevDebugUnitTest

/.gitlab/kom.yml

unitTests:
  stage: test

  script:
    - ./gradlew testKomDevDebugUnitTest

您观察到的情况与预期的行为相似:

您的三个文件 .gitlab/{bur,vil,kom}.yml 包含相同的作业名称 unitTests
因此,每个 include 都会覆盖此作业的规范。
结果,你最终只得到 1 unitTests 个作业,使用最后一个 YAML 文件的规范。

因此,最简单的解决方法是更改​​此作业名称,例如:

unitTests-kom:
  stage: test

  script:
    - ./gradlew testKomDevDebugUnitTest