如何根据标签名运行作业

Dan*_*nny 2 github github-actions

我有以下条件:

name: Build Image

on:
  push:
  pull_request:
  workflow_dispatch:
    

jobs:

  build-image: (This should be only if the tag contains "azure")
    name: Build Image Job
    runs-on: [ self-hosted ]

    steps:
    - uses: actions/checkout@v2

    - name: Run Build Step
      run: |
        ANSIBLE_VERSION=$(cat VERSION)
        docker images

jobs:

  build-image: (This will be for everything else)
    name: Build Image Job
    runs-on: [ self-hosted ]

    steps:
    - uses: actions/checkout@v2

    - name: Run Build Step
      run: |
        ANSIBLE_VERSION=$(cat VERSION)
        docker images
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?如何引用作业中的标签?如何使用变量并从中制定 if 规则?

Bla*_*gle 7

您可以在配置中使用正则表达式on来触发基于标签名称的工作流程。例如:

on:
  push:
    tags:
      - '*azure*'
Run Code Online (Sandbox Code Playgroud)

在作业或步骤级别,您可以使用表达式contains()

jobs:
  build-for-azure-tag:
    name: build-for-azure-tag
    runs-on: ubuntu-latest
    if: github.ref_type == 'tag' && contains(github.ref_name, 'azure')
Run Code Online (Sandbox Code Playgroud)