maven GitHub操作使用if条件或github引用限制带有标签验证的作业

4sup72z8  于 2022-11-22  发布在  Maven
关注(0)|答案(1)|浏览(155)

我有一个运行maven构建的应用程序代码,我们创建了快照,然后创建了一个标签,一旦快照构建成功,我们就使用快照构建中创建的标签,然后使用GitHub操作工作流中的发布标签运行构建。现在,我尝试仅在标签匹配和标签不匹配时运行构建工作流作业的发布,跳过作业或使作业失败,假设将在快照构建中创建标记,并将使用"<appname>-<app_build_type>-<github-actions-run_number>-<env>-origin/<branch>"标记格式,实际标记看起来像"java-maven-44-dev-origin/develop"我尝试了以下2种方法工作流,但完全无效第一种方法是:

name: maven-release

on:
  workflow_dispatch:

jobs:
  checkout_code:
    runs-on: [ubuntu-latest]
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

  maven_build:
    runs-on: [ubuntu-latest]
    if: ${{ github.ref == 'refs/tags/*-origin/develop' }}
    needs: checkout_code
    steps:
      - name: Run maven build
        run: |
          mvn clean install

第二种方法是:

name: maven-release

on:
  workflow_dispatch:

jobs:
  checkout_code:
    runs-on: [ubuntu-latest]
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

  maven_build:
    runs-on: [ubuntu-latest]
    if: contains(github.ref, 'refs/tags/*-origin/develop')
    needs: checkout_code
    steps:
      - name: Run maven build
        run: |
          mvn clean install

如果有人知道此问题的任何解决方案,或者有人可以提供有关如何实现此问题的一些建议,我希望仅在作业级别跳过/使其失败,而不在运行命令中

cig3rfwq

cig3rfwq1#

对于您的用例,您可以在推送时触发工作流,然后将筛选器应用于分支或标记

name: maven-release

on:
  workflow_dispatch:
  push:
    tags:
      - '*-origin/develop'

jobs:
  checkout_code:
    runs-on: [ubuntu-latest]
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          fetch-depth: 0

  maven_build:
    runs-on: [ubuntu-latest]
    if: ${{ github.ref == 'refs/tags/*-origin/develop' }}
    needs: checkout_code
    steps:
      - name: Run maven build
        run: |
          mvn clean install

Github过滤器模式备忘单

相关问题