Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for negating is_default_branch #247

Open
ben-foxmoore opened this issue Dec 12, 2022 · 2 comments
Open

Support for negating is_default_branch #247

ben-foxmoore opened this issue Dec 12, 2022 · 2 comments

Comments

@ben-foxmoore
Copy link

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 a not (...) helper (though given that is_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 a disable attribute that reverses the logic used by enable.

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 the this-is-main- prefix, and a second which adds the this-is-not- prefix. Currently the only way to do this is to fall back to standard Github Workflow expressions.

name: test-docker-tags

on:
  push:
    branches:
      - '**'

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      -
        name: Docker meta
        id: meta
        uses: docker/metadata-action@v4
        with:
          images: |
            name/app
          tags: |
            type=ref,event=branch,enable={{is_default_branch}},prefix=this-is-main-
            type=ref,event=branch,enable=${{ github.ref != format('refs/heads/{0}', 'master') }},prefix=this-is-not-
@aalvarezaph
Copy link

This would be a nice addition IMO

@crazy-max
Copy link
Member

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-

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants