circleci - 使用多个 JDK 运行 CircleCI 2.0 构建

标签 circleci circleci-2.0

我想使用 Open JDK 8 和 9 运行我的 Circle CI 2.0 构建。是否有任何可用的 YAML 示例解释如何使用多个 JDK 版本构建 Java 项目?

目前我正在尝试将新作业 java-8 添加到我的构建中。但我不想重复默认 Java 9 build 作业的所有步骤。有没有一种 DRY 方法?

version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
      - image: circleci/openjdk:9-jdk

    working_directory: ~/repo

    environment:
      # Customize the JVM maximum heap limit
      JVM_OPTS: -Xmx1g
      TERM: dumb

    steps:
      - checkout

      # Run all tests
      - run: gradle check

  java-8:
    - image: circleci/openjdk:8-jdk

最佳答案

您可以使用YAML anchors实现合理的DRY方法。例如,它可能看起来像:

  version: 2
  shared: &shared
    working_directory: ~/repo
    environment:
      # Customize the JVM maximum heap limit
      JVM_OPTS: -Xmx1g
      TERM: dumb
    steps:
      - checkout
      # Run all tests
      - run: gradle check

  jobs:
    java-9:
      docker:
        - image: circleci/openjdk:9-jdk
      <<: *shared

    java-8:
      docker:
        - image: circleci/openjdk:8-jdk
      <<: *shared

关于circleci - 使用多个 JDK 运行 CircleCI 2.0 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48991482/

相关文章:

continuous-integration - 如何在 CircleCI 2.0 工作流中进行有条件的手动批准

CircleCi 2.0 在子目录中处理项目

react-native - 世博会 + 排毒 + CircleCI

continuous-integration - circleci : How to run a job with multiple contexts for each environments

npm - 构建 NodeJS Lambda - 相同源,不同 SHA 哈希

android - CircleCI 中的单元测试因 org.gradle.internal.exceptions.LocationAwareException 而失败

docker - 如何通过使用 Docker 的作业在 macOS 上本地运行 Circleci?

cypress - 无法连接到总线 : Address does not contain a colon

android - 对curl的响应是从CircleCI上的gradle调用的空蜜蜂

Android Firebase 应用分发 - 服务凭证文件不存在。请检查服务凭据路径,然后重试