blob: cde92bcb1421d7af6114824488f4b28dbdb03d18 [file] [log] [blame]
#!/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)