目前我有 2 个 Github Action。一个用于生产版本,另一个用于暂存版本。
当我在生产分支中推送标签时,它会触发 CI/CD:
name: Deploy production
on:
push:
tags:
- 'v*'
当我“简单地”将提交推送到开发分支时,它会触发另一个 CI/CD:
name: Deploy staging
on:
push:
branches:
- develop
我现在想要实现的是使用不同但相似的 git 标签触发生产和暂存操作。我只知道如何在正则表达式中写下“过滤器”,但不知道如何在 Github Actions 中实现它。
用于生产:
/^v\d{1,2}\.\d{1,2}\.\d{1,2}/i
这将捕获从
v0.0.0
到 v99.99.99
的字符串
对于舞台:
/^v\d{1,2}\.\d{1,2}\.\d{1,2}-rc\.\d{1,2}/i
这将捕获从
v0.0.0-rc.0
到 v99.99.99-rc.99
的字符串
我最好的猜测是:
生产
name: Deploy production
on:
push:
branches:
- main
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
分期
name: Deploy production
on:
push:
branches:
- develop
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
请问如何正确实施我的想法?
来源:
这里没有太多要回答的,你已经有了看起来就是你想要的标签过滤器。这里唯一需要指出的是
branches:
条件是一个单独的检查。标签过滤器和分支是 OR,而不是 AND。因此,您可以确保只在这些分支中标记提交,或者在初始化作业中包含一个步骤来检查触发标记是否位于预期分支上。