【问题标题】:How to extend template script?如何扩展模板脚本?
【发布时间】:2021-12-25 11:48:02
【问题描述】:

我的 .gitlab-ci.yml 文件中有以下模板:

x-android-build-tools: &android_build_tools
  image: jangrewe/gitlab-ci-android
  stage: build
  script:
    - export GRADLE_USER_HOME=$(pwd)/.gradle
    - chmod +x ./gradlew
  artifacts:
    expire_in: 1 hours
    paths:
      - app/build/

我想扩展脚本部分以进行实际构建。例如:

android-stage-build:
  <<: *android_build_tools
  environment: stage
  only:
    - dev
  after_script:
    - ./gradlew :app:assembleDebug

它运行良好,但它有一个问题。 Docker 启动这两个作业而不是忽略模板。

有没有办法只运行在需要时触发模板作业的“android-stage-build”作业?

【问题讨论】:

    标签: docker-compose continuous-integration gitlab-ci


    【解决方案1】:

    为了让gitlab ci忽略第一个条目,需要在定义前加一个点(.)。

    .x-android-build-tools: &android_build_tools
      image: jangrewe/gitlab-ci-android
      stage: build
      script:
        - export GRADLE_USER_HOME=$(pwd)/.gradle
        - chmod +x ./gradlew
      artifacts:
        expire_in: 1 hours
        paths:
          - app/build/
    
    android-stage-build:
      <<: *android_build_tools
      environment: stage
      only:
        - dev
      after_script:
        - ./gradlew :app:assembleDebug
    

    除此之外,我认为,根据我在这里阅读的内容,您不想使用after_script

    我认为您想在模板中使用before_script,并在特定的构建阶段使用script-key。 主要区别在于如果脚本失败,after_script 也会运行。根据我在此处阅读的内容,您似乎并不希望这种情况发生。

    【讨论】:

      【解决方案2】:

      是的。您只是缺少. :)

      https://docs.gitlab.com/ee/ci/yaml/yaml_optimization.html#anchors

      如果你这样写它应该可以工作:

      .x-android-build-tools: &android_build_tools
        image: jangrewe/gitlab-ci-android
        stage: build
        script:
          - export GRADLE_USER_HOME=$(pwd)/.gradle
          - chmod +x ./gradlew
        artifacts:
          expire_in: 1 hours
          paths:
            - app/build/
      
      android-stage-build:
        <<: *android_build_tools
        environment: stage
        only:
          - dev
        after_script:
          - ./gradlew :app:assembleDebug
      

      【讨论】:

        猜你喜欢
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-24
        • 1970-01-01
        相关资源
        最近更新 更多