I ended up having only "push" event
on:
push:
branches:
- '**'
And whenever I need to know if it is a branch creation within my pipeline I use github.event.created
from the context.
For example here is a custom title for each scenario:
run-name: >
${{
startsWith(github.ref_name, 'release/') && github.event.created && 'Create Release' ||
startsWith(github.ref_name, 'release/') && 'Hotfix' ||
'Push'
}}
First one is for release, second for Hotfix and third for push to any other branch.