mirror of
https://github.com/konpa/devicon.git
synced 2025-01-19 14:27:04 +01:00
Build bot now check both PR and devicon.json
This commit is contained in:
parent
9f3bb9a36e
commit
0486aa765a
2
.github/scripts/build_assets/filehandler.py
vendored
2
.github/scripts/build_assets/filehandler.py
vendored
@ -6,7 +6,7 @@ import os
|
|||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
def find_new_icons(devicon_json_path: str, icomoon_json_path: str):
|
def find_new_icons_in_devicon_json(devicon_json_path: str, icomoon_json_path: str):
|
||||||
"""
|
"""
|
||||||
Find the newly added icons by finding the difference between
|
Find the newly added icons by finding the difference between
|
||||||
the devicon.json and the icomoon.json.
|
the devicon.json and the icomoon.json.
|
||||||
|
2
.github/scripts/build_assets/util.py
vendored
2
.github/scripts/build_assets/util.py
vendored
@ -46,7 +46,7 @@ def set_env_var(key: str, value: str, delimiter: str='~'):
|
|||||||
raise Exception("This function doesn't support this platform: " + platform.system())
|
raise Exception("This function doesn't support this platform: " + platform.system())
|
||||||
|
|
||||||
|
|
||||||
def find_object_added_in_this_pr(icons: List[dict], pr_title: str):
|
def find_object_added_in_pr(icons: List[dict], pr_title: str):
|
||||||
"""
|
"""
|
||||||
Find the icon name from the PR title.
|
Find the icon name from the PR title.
|
||||||
:param icons, a list of the font objects found in the devicon.json.
|
:param icons, a list of the font objects found in the devicon.json.
|
||||||
|
50
.github/scripts/icomoon_build.py
vendored
50
.github/scripts/icomoon_build.py
vendored
@ -20,31 +20,31 @@ def main():
|
|||||||
runner = None
|
runner = None
|
||||||
try:
|
try:
|
||||||
args = arg_getters.get_selenium_runner_args()
|
args = arg_getters.get_selenium_runner_args()
|
||||||
new_icons = get_icons_for_building(args.devicon_json_path, args.token)
|
new_icons = get_icons_for_building(args.icomoon_json_path, args.devicon_json_path, args.token)
|
||||||
if len(new_icons) == 0:
|
if len(new_icons) == 0:
|
||||||
sys.exit("No files need to be uploaded. Ending script...")
|
sys.exit("No files need to be uploaded. Ending script...")
|
||||||
|
|
||||||
print(f"There are {len(new_icons)} icons to be build. Here are they:", *new_icons, sep = "\n")
|
print(f"There are {len(new_icons)} icons to be build. Here are they:", *new_icons, sep = "\n")
|
||||||
|
|
||||||
print("Begin optimizing files")
|
# print("Begin optimizing files")
|
||||||
optimize_svgs(new_icons, args.icons_folder_path)
|
# optimize_svgs(new_icons, args.icons_folder_path)
|
||||||
|
|
||||||
print("Updating the icomoon json")
|
# print("Updating the icomoon json")
|
||||||
update_icomoon_json(new_icons, args.icomoon_json_path)
|
# update_icomoon_json(new_icons, args.icomoon_json_path)
|
||||||
|
|
||||||
icon_svgs = filehandler.get_svgs_paths(
|
# icon_svgs = filehandler.get_svgs_paths(
|
||||||
new_icons, args.icons_folder_path, icon_versions_only=True)
|
# new_icons, args.icons_folder_path, icon_versions_only=True)
|
||||||
runner = SeleniumRunner(args.download_path,
|
# runner = SeleniumRunner(args.download_path,
|
||||||
args.geckodriver_path, args.headless)
|
# args.geckodriver_path, args.headless)
|
||||||
runner.upload_icomoon(args.icomoon_json_path)
|
# runner.upload_icomoon(args.icomoon_json_path)
|
||||||
runner.upload_svgs(icon_svgs)
|
# runner.upload_svgs(icon_svgs)
|
||||||
|
|
||||||
zip_name = "devicon-v1.0.zip"
|
# zip_name = "devicon-v1.0.zip"
|
||||||
zip_path = Path(args.download_path, zip_name)
|
# zip_path = Path(args.download_path, zip_name)
|
||||||
runner.download_icomoon_fonts(zip_path)
|
# runner.download_icomoon_fonts(zip_path)
|
||||||
filehandler.extract_files(str(zip_path), args.download_path)
|
# filehandler.extract_files(str(zip_path), args.download_path)
|
||||||
filehandler.rename_extracted_files(args.download_path)
|
# filehandler.rename_extracted_files(args.download_path)
|
||||||
print("Task completed.")
|
# print("Task completed.")
|
||||||
except TimeoutException as e:
|
except TimeoutException as e:
|
||||||
util.exit_with_err("Selenium Time Out Error: \n" + str(e))
|
util.exit_with_err("Selenium Time Out Error: \n" + str(e))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -54,21 +54,31 @@ def main():
|
|||||||
runner.close()
|
runner.close()
|
||||||
|
|
||||||
|
|
||||||
def get_icons_for_building(devicon_json_path: str, token: str):
|
def get_icons_for_building(icomoon_json_path: str, devicon_json_path: str, token: str):
|
||||||
"""
|
"""
|
||||||
Get the icons for building.
|
Get the icons for building.
|
||||||
|
:param icomoon_json_path - the path to the `icomoon.json`.
|
||||||
:param devicon_json_path - the path to the `devicon.json`.
|
:param devicon_json_path - the path to the `devicon.json`.
|
||||||
:param token - the token to access the GitHub API.
|
:param token - the token to access the GitHub API.
|
||||||
"""
|
"""
|
||||||
all_icons = filehandler.get_json_file_content(devicon_json_path)
|
devicon_json = filehandler.get_json_file_content(devicon_json_path)
|
||||||
pull_reqs = api_handler.get_merged_pull_reqs_since_last_release(token)
|
pull_reqs = api_handler.get_merged_pull_reqs_since_last_release(token)
|
||||||
new_icons = []
|
new_icons = []
|
||||||
|
|
||||||
for pull_req in pull_reqs:
|
for pull_req in pull_reqs:
|
||||||
if api_handler.is_feature_icon(pull_req):
|
if api_handler.is_feature_icon(pull_req):
|
||||||
filtered_icon = util.find_object_added_in_this_pr(all_icons, pull_req["title"])
|
filtered_icon = util.find_object_added_in_pr(devicon_json, pull_req["title"])
|
||||||
if filtered_icon not in new_icons:
|
if filtered_icon not in new_icons:
|
||||||
new_icons.append(filtered_icon)
|
new_icons.append(filtered_icon)
|
||||||
|
|
||||||
|
# get any icons that might not have been found by the API
|
||||||
|
new_icons_from_devicon_json = filehandler.find_new_icons_in_devicon_json(
|
||||||
|
devicon_json_path, icomoon_json_path)
|
||||||
|
|
||||||
|
for icon in new_icons_from_devicon_json:
|
||||||
|
if icon not in new_icons:
|
||||||
|
new_icons.append(icon)
|
||||||
|
|
||||||
return new_icons
|
return new_icons
|
||||||
|
|
||||||
|
|
||||||
|
2
.github/scripts/icomoon_peek.py
vendored
2
.github/scripts/icomoon_peek.py
vendored
@ -17,7 +17,7 @@ def main():
|
|||||||
new_icons = filehandler.get_json_file_content(args.devicon_json_path)
|
new_icons = filehandler.get_json_file_content(args.devicon_json_path)
|
||||||
|
|
||||||
# get only the icon object that has the name matching the pr title
|
# get only the icon object that has the name matching the pr title
|
||||||
filtered_icon = util.find_object_added_in_this_pr(new_icons, args.pr_title)
|
filtered_icon = util.find_object_added_in_pr(new_icons, args.pr_title)
|
||||||
check_devicon_object(filtered_icon)
|
check_devicon_object(filtered_icon)
|
||||||
print("Icon being checked:", filtered_icon, sep = "\n", end='\n\n')
|
print("Icon being checked:", filtered_icon, sep = "\n", end='\n\n')
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user