Я не думаю, что вы можете, и я думаю, что даже если вы можете - вы не должны.
Если у вас есть разные долгосрочные ветви - такие как staging
и master
(для производство), эти ветки должны включать файлы для них обоих - будь то Jenkinsfiles или другие. Назовите их по-разному и сделайте так, чтобы они были зафиксированы в обеих ветвях.
Что касается рабочих процессов, у вас может быть два рабочих процесса (например, .github/workflows/stage.yml
и .github/workflows/production.yml
), и каждый из них должен запускаться только тогда, когда код подталкивается к соответствующей ветке:
on:
push: { branches: [master] }
pull_request: { branches: [master] }
# and
on:
push: { branches: [stage] }
Если я могу дать еще один совет - подумайте, действительно ли вам это нужно, чтобы это были отдельные ветви, а не просто теги. В конце концов, я предполагаю, что staging
всегда в конечном итоге объединяется с master
- так что это всего лишь шаг к производству, а не параллельная ветвь. Я контролирую широкий спектр различных репозиториев и никогда ни для чего не использовал долгосрочные ветки.