download-web.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import json
  2. import os
  3. import pathlib
  4. import tarfile
  5. import urllib.request
  6. flet_web_job_name = "Build Flet for web"
  7. build_jobs = {}
  8. def download_flet_web(jobId, dest_file):
  9. flet_web_url = f"https://ci.appveyor.com/api/buildjobs/{jobId}/artifacts/client/build/flet-web.tar.gz"
  10. print(f"Downloading {flet_web_url}...")
  11. urllib.request.urlretrieve(flet_web_url, dest_file)
  12. def get_flet_server_job_ids():
  13. account_name = os.environ.get("APPVEYOR_ACCOUNT_NAME")
  14. project_slug = os.environ.get("APPVEYOR_PROJECT_SLUG")
  15. build_id = os.environ.get("APPVEYOR_BUILD_ID")
  16. url = f"https://ci.appveyor.com/api/projects/{account_name}/{project_slug}/builds/{build_id}"
  17. print(f"Fetching build details at {url}")
  18. req = urllib.request.Request(url)
  19. req.add_header("Content-type", "application/json")
  20. project = json.loads(urllib.request.urlopen(req).read().decode())
  21. for job in project["build"]["jobs"]:
  22. build_jobs[job["name"]] = job["jobId"]
  23. current_dir = pathlib.Path(os.getcwd())
  24. print("current_dir", current_dir)
  25. get_flet_server_job_ids()
  26. # create "web" directory
  27. web_path = current_dir.joinpath("src", "flet", "web")
  28. web_path.mkdir(exist_ok=True)
  29. web_tar_path = current_dir.joinpath("flet-web.tar.gz")
  30. download_flet_web(build_jobs[flet_web_job_name], web_tar_path)
  31. with tarfile.open(web_tar_path, "r:gz") as tar:
  32. tar.extractall(str(web_path))
  33. os.remove(web_tar_path)