| #!/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) |