Github 操作条件触发器

Car*_*lva 3 github github-actions building-github-actions

我需要帮助解决一些问题,我正在尝试根据 2 个不同的发布标签触发 2 个不同的工作流程。我希望 prod-* 触发生产工作流程,而 dev-* 触发开发工作流程。

问题是两个标签都会触发两个工作流程,我不知道如何解决这个问题

在此输入图像描述

(我已经取消了这两个操作,但它们触发了,如您所见) 在此输入图像描述

Mat*_*att 6

tags元素对于事件无效release。因此,无论标签如何,都会为发布的release每个类型的事件触发工作流。对于包含事件的标签,没有像和事件那样的直接过滤器。releasepushpull_request

因此,您可以将if作业的条件与github.ref包含发布标签的上下文结合使用。

name: Deploy

on:
  release:
    types: [published]

jobs:
  deploy-dev:
    name: Deploy to development
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/dev-')
    steps:
      # [...]

  deploy-prod:
    name: Deploy to production
    runs-on: ubuntu-latest
    if: startsWith(github.ref, 'refs/tags/prod-')
    steps:
      # [...]
Run Code Online (Sandbox Code Playgroud)