ans*_*eva 7 github github-actions
我们有一个公共 SDK 存储库,我正在为其编写多个 github 工作流程。develop
其中一个工作流程包括当 PR 从 发起到时生成发布 SDK(缩小,用私钥编码)master
。task/**
另一个此类操作是在从一个分支到另一个分支引发 PR 时运行静态代码检查develop
。我尝试使用以下工作流程:
name: validate PR raised from task/** branched to develop branch
on:
pull_request:
branches: [ task/** ]
pull_request_target:
branches: [ develop ]
...
Run Code Online (Sandbox Code Playgroud)
该代码被推送到开发分支。但这会在每次提出或修改 PR 时触发工作流程两次,表明该操作正在使用“OR”配置运行。我只想在“AND”条件下运行此工作流程一次(即当源分支为task/**
AND 目标分支为develop
)
对于我的第一个用例,只有内部开发人员才能触发生成构建,这一点非常重要。那么是否可以针对特定目标和源分支运行操作?
您可以触发向基本分支发出拉取请求的工作流程,并进一步细化要基于头分支运行的作业。因此,您可以使用 中提供的信息并在条件github.head_ref
中对其进行评估。因此,每当表达式不匹配时,作业就会被跳过。以下是与您的描述相符的两个工作流程:if
构建-sdk.yml
name: Build-SDK
on:
pull_request:
branches: [ master ]
jobs:
build-sdk:
if: github.head_ref == 'develop'
runs-on: ubuntu-latest
steps:
- run: echo "Build SDK..."
Run Code Online (Sandbox Code Playgroud)
验证.yml:
name: Validate
on:
pull_request:
branches: [ develop ]
jobs:
validate:
if: startsWith(github.head_ref, 'task/')
runs-on: ubuntu-latest
steps:
- run: echo "Validate..."
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3926 次 |
最近记录: |