Open ben-foxmoore opened 1 year ago
This would be a nice addition IMO
I think this should work:
type=ref,event=branch,enable={{is_default_branch}},prefix=this-is-main-
type=ref,event=branch,enable={{#if is_default_branch}}false{{else}}true{{/if}},prefix=this-is-not-
Hi there,
Unfortunately, the solution with the Handlebars conditional does not work.
It appears that the #
sign in the template is interpreted as a comment and therefore leaves a broken Handlebars template. I get the following error message (the reason is the missing closing handlebar delimiter in the enable attribute):
Processing tags input
type=ref,event=pr,enable={{,prefix=pr-,priority=600
Processing flavor input
Error: Parse error on line 1:
{{
--^
Expecting 'ID', 'STRING', 'NUMBER', 'BOOLEAN', 'UNDEFINED', 'NULL', 'DATA', got 'EOF'
The following workaround via GitHub expressions works:
type=ref,event=pr,enable=${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }}
From what I can tell, it's currently not possible to negate the value calculated by
is_default_branch
. This makes it harder to disable a tag for all branches other than the default branch.This could be supported by either adding a specific
is_not_default_branch
or with anot (...)
helper (though given thatis_default_branch
is the only Global expression that this would work with, it seems rather pointless). An alternative, but probably larger change could be to support adisable
attribute that reverses the logic used byenable
.If I've overlooked a way to do this that already exists, please let me know! Happy to work on a PR to support this if some guidance on preferred solution can be given.
Example workflow
The example workflow below has two tags - one which uses
is_default_branch
and adds thethis-is-main-
prefix, and a second which adds thethis-is-not-
prefix. Currently the only way to do this is to fall back to standard Github Workflow expressions.