【发布时间】:2022-11-08 15:34:33
【问题描述】:
我尝试使用 GitHub Actions 为开发环境实现 CD。
构建应用程序的常见触发器是合并到 develop/main 分支的拉取请求。但我有多个开发环境,并希望允许开发人员仅通过对任何个人分支的简单提交来更新它。
但并不是每个提交都需要构建(例如,可能只是文档更新)。因此,我试图找出确定是否需要构建的最佳方法。
现在我计划通过提交消息内容来确定是否进行构建。如果它以#b-[environment name] 开头,则应该进行构建。
name: Build me
on:
push:
# ignore common branches and run build only when personal branch is changed
branches-ignore:
- 'main'
- 'develop'
jobs:
build_app:
name: Build latest app
runs-on: ubuntu-latest
if: ${{ startsWith(github.event.head_commit.message, '#b-') }}
steps:
- uses: actions/checkout@v2
...
但在这种情况下,提交消息中将包含不必要的信息,这会使历史有点脏。
我也知道可以排除确切的非代码paths:
on:
push:
paths-ignore:
- 'docs/**'
但是我不想运行 build 以防里面只有 cmets代码已更新。
另外据我所知,可以避免通过标签和标签进行构建。它可以用于我的目的吗?
【问题讨论】:
-
将
[skip ci]放在您不希望构建的提交的消息中。许多 CI 提供商 including GHA 都支持这一点。如果您最终在一些您并不严格需要的提交上运行 CI,那又如何。
标签: github-actions