Skip to content

Instantly share code, notes, and snippets.

@shiywang
Created December 2, 2019 13:53
Show Gist options
  • Save shiywang/dcbb5655f315c27242554ef6ad3aa723 to your computer and use it in GitHub Desktop.
Save shiywang/dcbb5655f315c27242554ef6ad3aa723 to your computer and use it in GitHub Desktop.
def get_latest_build_info(self, product_version, latest_builds, brew_session):
"""
Queries brew to determine the most recently built release of the component
associated with this image. This method does not rely on the "release"
label needing to be present in the Dockerfile.
:return: A tuple: (component name, version, release); e.g. ("registry-console-docker", "v3.6.173.0.75", "1")
"""
component_name = self.get_component_name()
tag = "{}-candidate".format(self.branch())
if not latest_builds:
latest_builds = brew_session.getLatestBuilds(tag)
# print()
# rc, stdout, stderr = exectools.cmd_gather(["brew", "latest-build", tag, component_name])
# assertion.success(rc, "Unable to search brew builds: %s" % stderr)
# latest = stdout.strip().splitlines()[-1].split(' ')[0]
# if not latest.startswith(component_name):
# # If no builds found, `brew latest-build` output will appear as:
# # Build Tag Built by
# # ---------------------------------------- -------------------- ----------------
# raise IOError("No builds detected for %s using tag: %s" % (self.qualified_name, tag))
# "golang-github-prometheus-prometheus-container-v4.1.27-201911290309"
# latest example: "registry-console-docker-v3.6.173.0.75-1""
nvr = brew_builds[0].get("nvr", "")
if nvr == "":
print(brew_builds[0])
raise IOError("Error...........")
name, version, release = nvr.rsplit("-", 2) # [ "registry-console-docker", "v3.6.173.0.75", "1"]
return name, version, release, product_version[self.name]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment