def download_artifacts(artifacts): artifact_list_by_task = {} for artifact in artifacts: base_url = task_url(artifact["task"]) if artifact["task"] not in artifact_list_by_task: with tempfile.TemporaryFile() as f: get_download_to_descriptor(f, base_url + "/artifacts") f.seek(0) artifacts_data = json.load(f) artifact_list_by_task[artifact["task"]] = artifacts_data artifacts_data = artifact_list_by_task[artifact["task"]] print("DEBUG: Got artifacts %s" % artifacts_data) found = False for candidate in artifacts_data["artifacts"]: print("DEBUG: candidate: %s glob: %s" % (candidate["name"], artifact["glob"])) if fnmatch.fnmatch(candidate["name"], artifact["glob"]): found = True print("INFO: Fetching aritfact %s from task %s" % (candidate["name"], artifact["task"])) file_name = candidate["name"].rsplit("/", 1)[1] url = base_url + "/artifacts/" + candidate["name"] dest_path = os.path.expanduser(os.path.join("~", artifact["dest"], file_name)) dest_dir = os.path.dirname(dest_path) if not os.path.exists(dest_dir): os.makedirs(dest_dir) with open(dest_path, "wb") as f: get_download_to_descriptor(f, url) if artifact.get("extract"): unpack(dest_path) if not found: print("WARNING: No artifact found matching %s in task %s" % (artifact["glob"], artifact["task"]))
def fetch_event_data(): try: task_id = os.environ["TASK_ID"] except KeyError: print("WARNING: Missing TASK_ID environment variable") # For example under local testing return None with tempfile.TemporaryFile() as f: get_download_to_descriptor(f, task_url(task_id)) f.seek(0) task_data = json.load(f) event_data = task_data.get("extra", {}).get("github_event") if event_data is not None: return json.loads(event_data)
def install_chrome(channel): if channel in ("experimental", "dev"): deb_archive = "google-chrome-unstable_current_amd64.deb" elif channel == "beta": deb_archive = "google-chrome-beta_current_amd64.deb" elif channel == "stable": deb_archive = "google-chrome-stable_current_amd64.deb" else: raise ValueError("Unrecognized release channel: %s" % channel) dest = os.path.join("/tmp", deb_archive) deb_url = "https://dl.google.com/linux/direct/%s" % deb_archive with open(dest, "wb") as f: get_download_to_descriptor(f, deb_url) run(["sudo", "apt-get", "-qqy", "update"]) run(["sudo", "gdebi", "-qn", "/tmp/%s" % deb_archive])
def install_chrome(channel): deb_prefix = "https://dl.google.com/linux/direct/" if channel in ("experimental", "dev"): # Pinned since 91.0.4455.2-1 began crashing on startup. # See https://github.com/web-platform-tests/wpt/issues/28209. deb_archive = "google-chrome-unstable_91.0.4449.6-1_amd64.deb" deb_prefix = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-unstable/" elif channel == "beta": deb_archive = "google-chrome-beta_current_amd64.deb" elif channel == "stable": deb_archive = "google-chrome-stable_current_amd64.deb" else: raise ValueError("Unrecognized release channel: %s" % channel) dest = os.path.join("/tmp", deb_archive) deb_url = deb_prefix + deb_archive with open(dest, "wb") as f: get_download_to_descriptor(f, deb_url) run(["sudo", "apt-get", "-qqy", "update"]) run(["sudo", "gdebi", "-qn", "/tmp/%s" % deb_archive])