Skip to content

Proposal: Redesign tagging input/outputs to be independent #30

Closed
@LongLiveCHIEF

Description

@LongLiveCHIEF

I still use this action for labeling features, but if you're open to it, I'd really like you to consider importing my actions tag handling capabilities due to their power, simplicity, and flexibility.

To give you an example, here's a snippet from a repo where I'm using the latest functionality I've implemented, snippet pulled from https://github.com/OctoPrint/octoprint-docker/blob/master/.github/workflows/octoprint-release.yml#L69-L87:

      -
        id: buildxy
        run: echo '::set-output name=buildxy::${{ (github.event.action == 'deploy'|| github.event.action == 'released') && github.event.client_payload.tag_name == steps.stable-octoprint.outputs.release }}'
      -
        name: Tagging Strategy
        id: tagging
        uses: HackerHappyHour/tagging-strategy@v3
        with:
          image_name: octoprint/octoprint
          tag_name: ${{ github.event.client_payload.tag_name }}
          tags: |
            %X%::${{ steps.buildxy.outputs.buildxy }}
            %X.Y%::${{ steps.buildxy.outputs.buildxy }}
            %X.Y.Z%
          extra_tags: |
            latest::${{ steps.stable-octoprint.outputs.release == github.event.client_payload.tag_name }}
            edge::${{ github.event.action == 'prereleased' || github.event.client_payload.tag_name == steps.latest-octoprint.outputs.release }}
            canary::${{ github.event.action == 'canary' }}
            bleeding::${{ github.event.action == 'bleeding' }}

This one snippet demonstrates the how i think the approach to tagging should work in ghaction-dockermeta:

  • explicit control over the conditions of each and every tag,
  • semver parsing
  • no interdependent input parameters,
  • output compatible with docker/build-push-action
  • supports tag suffixes Add tag flavor #15
  • supports additional non-semver custom tags Allow to add custom tags #24 via extra_tags
  • compatible with externally triggered events
  • sha tags (via extra_tags parameter in a similar way to your {{raw}} usage

Bonus

As far as I can tell, refactoring tag inputs to work as they do in HackerHappyHour/tagging-strategy@v3+ would close the following open issues as well:

I doubt my action will ever get any users (even though I obviously have a super high opinion of it 😏 ), but you've got the benefit of having been in the docker action space since actions launched, and the have visibility and reach. I'd love for the work I did to benefit your users and carry over here.

Would you be willing to consider a redesign to bring support for this usage technique? I'd really love to be able to archive my project and merge it with yours!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions