作者:手机用户2602902147 | 来源:互联网 | 2023-08-06 12:41
我最近在GitHub动作中添加了静态分析步骤。但是,它有些昂贵,因此我试图减少执行此步骤的次数。我已经添加了一个适当的筛选器,以便它只能在一个OS上运行,并且只能在我的“功能”分支上运行。但是,我还要过滤掉提交消息中包括“ WIP”的所有签入。 (从理论上讲,直到不再是“进行中的工作”,才可以执行完整的分析。)
我在文档中进行了搜索,希望找到可以用作github
上下文对象一部分的对象,但无济于事。
关于如何实现此目标的任何想法?
如果您想确切了解我在做什么,则Yaml的操作如下。我希望可以对if
项目上的Static Analysis
语句进行一些更改,以实现我的目标。
name: On Push
on: [push]
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest,macos-latest]
steps:
- uses: actions/checkout@v1
- name: Build
run: |
./configure
make -j 4
- name: Run tests
run: |
make -j 4 check
- name: Static Analysis
if: runner.os == 'macOS' && startsWith(github.ref,'refs/heads/feature/')
run: |
make analyze
关于您的问题,您现在(2021 年 2 月):
GitHub Actions: Skip pull request and push workflows
with [skip ci]
GitHub Actions 现在支持通过在提交消息中查找一些常见关键字来跳过 push 和 pull_request 工作流程。
如果您的推送或 PR 的 HEAD 提交中的任何提交消息包含字符串 [skip ci]
、[ci skip]
、[no ci]
、[skip actions]
或 [actions skip]
在 push
或 pull_request
事件上触发的工作流将被跳过。
这不像自定义提交消息(如您的“WIP”)那样灵活,但它仍然可以提供帮助。
,
您可以使用github
context上的event
属性来访问push payload。
使用以下内容:
if: "!startsWith(github.event.head_commit.message,'WIP')"