| #!/usr/bin/env python3 | |
| # Copyright 2020 The IREE Authors | |
| # | |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. | |
| # See https://llvm.org/LICENSE.txt for license information. | |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | |
| import os | |
| import subprocess | |
| from typing import Sequence | |
| PROD_DIGESTS_PATH = "build_tools/docker/prod_digests.txt".replace("/", os.sep) | |
| def run_command( | |
| command: Sequence[str], | |
| dry_run: bool = False, | |
| check: bool = True, | |
| capture_output: bool = False, | |
| text: bool = True, | |
| **run_kwargs, | |
| ) -> subprocess.CompletedProcess: | |
| """Thin wrapper around subprocess.run""" | |
| print(f"Running: `{' '.join(command)}`") | |
| if dry_run: | |
| # Dummy CompletedProess with successful returncode. | |
| return subprocess.CompletedProcess(command, returncode=0) | |
| completed_process = subprocess.run( | |
| command, text=text, check=check, capture_output=capture_output, **run_kwargs | |
| ) | |
| return completed_process | |
| def check_gcloud_auth(dry_run: bool = False): | |
| # Ensure the user has the correct authorization if they try to push to GCR. | |
| try: | |
| run_command(["which", "gcloud"]) | |
| except subprocess.CalledProcessError as error: | |
| raise RuntimeError( | |
| "gcloud not found. See https://cloud.google.com/sdk/install for " | |
| "installation." | |
| ) from error | |
| run_command(["gcloud", "auth", "configure-docker"], dry_run) |