GitHub Actions reusable workflow: вызвать workflow_call
Общие шаги CI вынесите в workflow с событием workflow_call и вызывайте из других workflow. Типизированные inputs документируют контракт между общей сборкой и её вызывающей стороной.
Рабочий пример
on:
workflow_call:
inputs:
node-version:
type: string
required: false
default: '22'
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v4
with:
node-version: ${{ inputs.node-version }}
- run: npm ci && npm testВызывайте workflow на уровне job через uses: owner/repo/.github/workflows/test.yml@v1. Параметры передаются в with, секреты — отдельно через secrets.
Частый вопрос
Как передать secret?
Объявите его в on.workflow_call.secrets или используйте secrets: inherit внутри доверенной организации. Передавайте только необходимые значения.