docker / metadata-action

GitHub Action to extract metadata (tags, labels) from Git reference and GitHub events for Docker
https://github.com/marketplace/actions/docker-metadata-action
Apache License 2.0
900 stars 117 forks source link

refs with uppercase characters trigger an error in buildx (branch names with uppercase characters) #405

Open WarpedPixel opened 5 months ago

WarpedPixel commented 5 months ago

Contributing guidelines

I've found a bug, and:

Description

I have a mixed case user name. This means that a branch might be called WarpedPixel/issue200, which generates a ref WarpedPixel-issue200. This triggers an error in buildx:

ERROR: invalid tag "WarpedPixel-issue455": repository name must be lowercase

Expected behaviour

metadata action should generate sanitized, valid tags only. In this situation it should convert the branch name/ref to lower case.

Actual behaviour

Throws an error. I can't really use branch names with mixed case (which are created automatically by other tools like vscode). For such branches, I don't know what the workaround that would allow me to use the metadata action in a GitHub Actions build.

Repository URL

No response

Workflow run URL

No response

YAML workflow

- name: Docker metadata
  id: meta
  uses: docker/metadata-action@v5
  with:
    tags: |
      type=ref,event=branch
      type=ref,event=pr
      type=semver,pattern={{version}},enable={{is_default_branch}}
      type=sha
      type=sha,format=long

- name: Build Frontend
  id: build_frontend
  uses: docker/build-push-action@v5.3.0
  with:
    context: ./frontend
    build-args: VERSION=${{ needs.versioning.outputs.version }}
    push: false
    cache-from: type=gha
    cache-to: type=gha,mode=max
    target: production
    outputs: type=image
    tags: |
      ${{ needs.versioning.outputs.tags }}
      frontend:production
    labels: ${{ needs.versioning.outputs.labels }}

Workflow logs

No response

BuildKit logs

No response

Additional info

No response

jamesiarmes commented 5 months ago

I just ran into this issue as well. It seems the tag should be put through the same sanitation as the name.