From ae3f5d0f543c733e2f092760e14f4c0548bdf6cd Mon Sep 17 00:00:00 2001 From: fweikert Date: Thu, 1 Apr 2021 16:49:17 +0200 Subject: [PATCH] Always download Buildifier from GitHub. Previously CI used the Buildifier binary from the Docker container if the user did not request a specific version. However, since we forgot to update the Docker container, it still contained an ancient version (0.22.0 - for comparison, the most recent release is 4.0.1). With this commit CI will always download a Buildifier binary from GitHub, with "no version" implying "latest". Moreover, this commit fixes the download logic to recognize binaries of older releases such as 0.4.3. Consequently, we no longer ship a Buildifier binary as part of the Docker container. More progress towards #1080. --- buildifier/Dockerfile | 6 ------ buildifier/buildifier.py | 30 ++++++++++-------------------- 2 files changed, 10 insertions(+), 26 deletions(-) diff --git a/buildifier/Dockerfile b/buildifier/Dockerfile index 366d89ae54..ea226c2c25 100644 --- a/buildifier/Dockerfile +++ b/buildifier/Dockerfile @@ -1,11 +1,5 @@ FROM python:alpine -# Latest release from: https://github.com/bazelbuild/buildtools/releases -RUN apk add curl && \ - curl -Lo /usr/local/bin/buildifier https://github.com/bazelbuild/buildtools/releases/download/0.22.0/buildifier && \ - chown root:root /usr/local/bin/buildifier && \ - chmod 0755 /usr/local/bin/buildifier - COPY --chown=root:root buildifier.py /usr/local/bin/buildifier.py ENTRYPOINT [ "/usr/local/bin/buildifier.py" ] diff --git a/buildifier/buildifier.py b/buildifier/buildifier.py index 2d30f82c26..f8930f6cf7 100755 --- a/buildifier/buildifier.py +++ b/buildifier/buildifier.py @@ -153,7 +153,7 @@ def get_release_urls(release): buildifier_assets = [ a for a in release["assets"] - if a["name"] in ("buildifier", "buildifier-linux-amd64") + if a["name"] in ("buildifier", "buildifier-linux-amd64", "buildifier.linux") ] if not buildifier_assets: raise Exception( @@ -203,25 +203,15 @@ def main(argv=None): buildifier_binary = "buildifier" display_url = BUILDIFIER_DEFAULT_DISPLAY_URL - version = os.environ.get(VERSION_ENV_VAR) - if version: - eprint("+++ :github: Downloading Buildifier version '{}'".format(version)) - try: - version, display_url, download_url = get_buildifier_info(version) - eprint("Downloading Buildifier {} from {}".format(version, download_url)) - buildifier_binary = download_buildifier(download_url) - except Exception as ex: - print_error("downloading Buildifier", str(ex)) - return 1 - - # Determine Buildifier version if the user did not request a specific version. - if not version: - eprint("+++ :female-detective: Detecting Buildifier version") - version_result = run_buildifier( - buildifier_binary, ["--version"], what="Version info" - ) - match = BUILDIFIER_VERSION_PATTERN.search(version_result.stdout) - version = match.group(1) if match and match.group(1) != "redacted" else None + version = os.environ.get(VERSION_ENV_VAR, "latest") + eprint("+++ :github: Downloading Buildifier version '{}'".format(version)) + try: + version, display_url, download_url = get_buildifier_info(version) + eprint("Downloading Buildifier {} from {}".format(version, download_url)) + buildifier_binary = download_buildifier(download_url) + except Exception as ex: + print_error("downloading Buildifier", str(ex)) + return 1 flags = ["--mode=check", "--lint=warn"] warnings = os.getenv(WARNINGS_ENV_VAR)