Skip to content

Commit

Permalink
Merge pull request #11054 from MikeMcQuaid/github_packages_image_tag_…
Browse files Browse the repository at this point in the history
…cleanup

github_packages: remove invalid docker tag characters.
  • Loading branch information
MikeMcQuaid committed Apr 7, 2021
2 parents df21c03 + d707c0b commit 4613d36
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 7 deletions.
18 changes: 12 additions & 6 deletions Library/Homebrew/github_packages.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,11 @@ def self.image_formula_name(formula_name)
.tr("+", "x")
end

def self.image_version_rebuild(version_rebuild)
# invalid docker tag characters
version_rebuild.tr("+", ".")
end

private

IMAGE_CONFIG_SCHEMA_URI = "https://opencontainers.org/schema/image/config"
Expand Down Expand Up @@ -183,22 +188,23 @@ def upload_bottle(user, token, skopeo, formula_full_name, bottle_hash, dry_run:,
rebuild = bottle_hash["bottle"]["rebuild"]
version_rebuild = GitHubPackages.version_rebuild(version, rebuild)

image_formula_name = GitHubPackages.image_formula_name(formula_name)
image_tag = "#{GitHubPackages.root_url(org, repo, DOCKER_PREFIX)}/#{image_formula_name}:#{version_rebuild}"
image_name = GitHubPackages.image_formula_name(formula_name)
image_tag = GitHubPackages.image_version_rebuild(version_rebuild)
image_uri = "#{GitHubPackages.root_url(org, repo, DOCKER_PREFIX)}/#{image_name}:#{image_tag}"

puts
inspect_args = ["inspect", image_tag.to_s]
inspect_args = ["inspect", image_uri.to_s]
if dry_run
puts "#{skopeo} #{inspect_args.join(" ")} --dest-creds=#{user}:$HOMEBREW_GITHUB_PACKAGES_TOKEN"
else
inspect_args << "--dest-creds=#{user}:#{token}"
inspect_result = system_command(skopeo, args: inspect_args)
if inspect_result.status.success?
if warn_on_error
opoo "#{image_tag} already exists, skipping upload!"
opoo "#{image_uri} already exists, skipping upload!"
return
else
odie "#{image_tag} already exists!"
odie "#{image_uri} already exists!"
end
end
end
Expand Down Expand Up @@ -343,7 +349,7 @@ def upload_bottle(user, token, skopeo, formula_full_name, bottle_hash, dry_run:,
"org.opencontainers.image.ref.name" => version_rebuild)

puts
args = ["copy", "--all", "oci:#{root}", image_tag.to_s]
args = ["copy", "--all", "oci:#{root}", image_uri.to_s]
if dry_run
puts "#{skopeo} #{args.join(" ")} --dest-creds=#{user}:$HOMEBREW_GITHUB_PACKAGES_TOKEN"
else
Expand Down
3 changes: 2 additions & 1 deletion Library/Homebrew/software_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,8 @@ def github_packages_manifest_resource
resource.version(version_rebuild)

image_name = GitHubPackages.image_formula_name(@name)
resource.url("#{@spec.root_url}/#{image_name}/manifests/#{version_rebuild}", {
image_tag = GitHubPackages.image_version_rebuild(version_rebuild)
resource.url("#{@spec.root_url}/#{image_name}/manifests/#{image_tag}", {
using: CurlGitHubPackagesDownloadStrategy,
headers: ["Accept: application/vnd.oci.image.index.v1+json"],
})
Expand Down

0 comments on commit 4613d36

Please sign in to comment.