我們有一個公共 SDK 存盤庫,我正在為此撰寫多個 github 作業流。develop一個這樣的作業流程包括當 PR 從to提升時生成 Release 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 ]
...
此代碼被推送到開發分支。但這會在每次提出或修改 PR 時觸發兩次作業流,表明該操作正在使用“或”配置運行。我只想在“AND”條件下運行此作業流一次(即當源分支為task/**AND 目標分支為時develop)
對于我的第一個用例,只有內部開發人員才能觸發生成構建,這一點非常重要。那么可以為特定的目標和源分支運行操作嗎?
uj5u.com熱心網友回復:
您可以觸發對基礎分支的拉取請求的作業流,并根據頭分支進一步細化要運行的作業。因此,您可以使用可用的資訊并在有條件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..."
驗證.yml:
name: Validate
on:
pull_request:
branches: [ develop ]
jobs:
validate:
if: startsWith(github.head_ref, 'task/')
runs-on: ubuntu-latest
steps:
- run: echo "Validate..."
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/444208.html
