Add prototype bootstrap script Change-Id: Ic55bd2b024ef5b543bd441a7fbcd9a2cab120606
diff --git a/bootstrap.py b/bootstrap.py new file mode 100755 index 0000000..78f5755 --- /dev/null +++ b/bootstrap.py
@@ -0,0 +1,78 @@ +#!/usr/bin/env python3 + +import json +import subprocess +import tempfile + +FUCHSIA_SDK_CIPD = "fuchsia/sdk/core/fuchsia-bazel-rules" +FUCHSIA_SDK_HOSTS = ["linux", "mac"] + + +def run_command(command, verbose=True): + if verbose: + print(f"Running {command}") + command = command.split() + subprocess.run(command, check=True, capture_output=True) + + +def init_submodules(): + init = "git submodule init" + run_command(init) + update = "git submodule update --recursive" + run_command(update) + + +def run_bazel_boostrap(): + command = "scripts/bootstrap.sh" + run_command(command) + + +def fetch_fuchsia_sdk(): + command = "tools/bazel build @fuchsia_sdk//:fuchsia_toolchain_sdk" + run_command(command) + + +def set_bazel_sdk_ensure_files(): + version = {} + temp_dir = tempfile.mkdtemp() + for host in FUCHSIA_SDK_HOSTS: + run_command( + f"cipd describe {FUCHSIA_SDK_CIPD}/{host}-amd64 -version latest -json-output {temp_dir}/{host}.json" + ) + with open(f"{temp_dir}/{host}.json", "r") as f: + data = json.load(f) + # there are multiple, nested tags. Find the one about jiri_snapshot and parse out the version + version[host] = list( + filter( + lambda x: x["tag"].startswith("jiri_snapshot:"), + data["result"]["tags"], + ) + )[0]["tag"].split(":")[1] + # The format of the bazel_ensure + with open("manifests/bazel_sdk.ensure", "w") as f: + f.write("$ResolvedVersions bazel_sdk.resolved\n") + f.write("$VerifiedPlatform linux-amd64 mac-amd64\n") + f.write( + "fuchsia/sdk/core/fuchsia-bazel-rules/${{os=linux}}-${{arch}} version:{linux}\n".format( + **version + ) + ) + f.write( + "fuchsia/sdk/core/fuchsia-bazel-rules/${{os=mac}}-amd64 version:{mac}\n".format( + **version + ) + ) + + +def ensure_resolve(): + run_command( + "cipd ensure-file-resolve -ensure-file /usr/local/google/home/djmurphy/Code/input/manifests/bazel_sdk.ensure" + ) + + +if __name__ == "__main__": + init_submodules() + run_bazel_boostrap() + set_bazel_sdk_ensure_files() + ensure_resolve() + fetch_fuchsia_sdk()
diff --git a/manifests/bazel_sdk.ensure b/manifests/bazel_sdk.ensure index 7a7cb18..eec8659 100644 --- a/manifests/bazel_sdk.ensure +++ b/manifests/bazel_sdk.ensure
@@ -1,4 +1,4 @@ $ResolvedVersions bazel_sdk.resolved $VerifiedPlatform linux-amd64 mac-amd64 -fuchsia/sdk/core/fuchsia-bazel-rules/${os=linux}-${arch} version:14.20230825.3.1 -fuchsia/sdk/core/fuchsia-bazel-rules/${os=mac}-amd64 version:14.20230825.3.1 +fuchsia/sdk/core/fuchsia-bazel-rules/${os=linux}-${arch} version:16.20231025.3.1 +fuchsia/sdk/core/fuchsia-bazel-rules/${os=mac}-amd64 version:16.20231025.3.1
diff --git a/manifests/bazel_sdk.resolved b/manifests/bazel_sdk.resolved index c1ae053..60380f0 100644 --- a/manifests/bazel_sdk.resolved +++ b/manifests/bazel_sdk.resolved
@@ -2,9 +2,9 @@ # Do not modify manually. All changes will be overwritten. fuchsia/sdk/core/fuchsia-bazel-rules/linux-amd64 - version:14.20230825.3.1 - -8e0YUn0dXZzKSPmEJLVtzk2lijh1zC9A1kny0WwWEsC + version:16.20231025.3.1 + 3NEspJjWWjGsKfqqrovCOBKWPd8ZNS_HwQ29DTJzNbwC fuchsia/sdk/core/fuchsia-bazel-rules/mac-amd64 - version:14.20230825.3.1 - d16iCfvEDT919buOe054wlxk0gATLK_GescQCMhrlaEC + version:16.20231025.3.1 + HJj7LeVdSwI_x2ZI922YPm3ZDdaG3A2KKduQ11q8sKMC