首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GitHub操作:如何有条件地切换运行命令?

GitHub操作:如何有条件地切换运行命令?
EN

Stack Overflow用户
提问于 2020-05-15 15:47:49
回答 1查看 502关注 0票数 0

我已经创建了一个包含以下两个作业的工作流:

代码语言:javascript
复制
  build-and-test-with-Java-8-and-later:
    name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.architecture }}, ${{ matrix.os }})
    strategy:
      fail-fast: true
      matrix:
        os: [ubuntu-latest, macOS-latest, windows-latest]
        java: [8, 9, 10, 11, 12, 13, 14]
        architecture: [x32, x64]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}
          architecture: ${{ matrix.architecture }}  
      - name: Build and test
        run: mvn -B clean test -Dproject_jdk_version=${{ matrix.java }} -DskipTests=false --file pom.xml

  build-and-test-with-Java-15-ea:
    name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.architecture }}, ${{ matrix.os }})
    strategy:
      fail-fast: true
      matrix:
        os: [ubuntu-latest, macOS-latest, windows-latest]
        java: [15-ea]
        architecture: [x32, x64]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}
          architecture: ${{ matrix.architecture }}  
      - name: Build and test
        run: mvn -B clean test -Dproject_jdk_version=15 -DskipTests=false --file pom.xml

..。我想将这两个作业合并到一个唯一的作业中,当迭代的${{ matrix.java }}变量包含'-ea‘后缀时,该作业将切换运行元素。特别是,我想要创建这样的东西:

代码语言:javascript
复制
  build-and-test-with-Java-8-and-later:
    name: Build -> Test (JVM ${{ matrix.java }}, ${{ matrix.architecture }}, ${{ matrix.os }})
    strategy:
      fail-fast: true
      max-parallel: 10
      matrix:
        os: [ubuntu-latest, macOS-latest, windows-latest]
        java: [8, 9, 10, 11, 12, 13, 14, 15-ea]
        architecture: [x32, x64]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: if${{ matrix.java }}
          architecture: ${{ matrix.architecture }}  
      - name: Build and test
        if: ${{ matrix.java }} != '15-ea'
        run: mvn -B clean test -Dproject_jdk_version=${{ matrix.java }} -DskipTests=false --file pom.xml
      - name: Build and test
        if: ${{ matrix.java }} == '15-ea'
        run: mvn -B clean test -Dproject_jdk_version=15 -DskipTests=false --file pom.xml
EN

回答 1

Stack Overflow用户

发布于 2020-05-16 03:36:26

您可以使用Githu操作中的一个可用的function

在您的情况下,这将是可行的:

代码语言:javascript
复制
- name: Build and test
   if: contains(matrix.java, '15-ea')
   run: mvn -B clean test -Dproject_jdk_version=${{ matrix.java }} -DskipTests=false --file pom.xml
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61814285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档