Amap workflow, "toolchain improvements" (#1685)

* fix quotes in amap
* try to fix quotes
* try to read "commit_message"
* Add new actions anv parser
* fix amap_anayse
* fix script ssl error
* test build with new get commit details method
* fix build.yml
* add fbt envs to get_env.py
* fix envs
* using new commit info "way"
* try to fix report link in PR page
* fix "pvs_studio.yml" again
* fix vars
* fix "build.yml"

Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
Max Andreev
2022-09-03 10:09:03 +03:00
committed by GitHub
parent a3932cfa6d
commit 53aa5c71a0
9 changed files with 168 additions and 149 deletions

87
scripts/get_env.py Normal file
View File

@@ -0,0 +1,87 @@
#!/usr/bin/env python3
import ssl
import json
import os
import shlex
import re
import argparse
import datetime
import urllib.request
# event_file = open('${{ github.event_path }}')
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument("--event_file", help="Current GitHub event file", required=True)
parser.add_argument(
"--is_pull", help="Is it Pull Request", default=False, action="store_true"
)
args = parser.parse_args()
return args
def get_commit_json(event):
context = ssl._create_unverified_context()
with urllib.request.urlopen(
event["pull_request"]["_links"]["commits"]["href"], context=context
) as commit_file:
commit_json = json.loads(commit_file.read().decode("utf-8"))
return commit_json
def get_details(event, args):
data = {}
current_time = datetime.datetime.utcnow().date()
if args.is_pull:
commit_json = get_commit_json(event)
data["commit_comment"] = shlex.quote(commit_json[-1]["commit"]["message"])
data["commit_hash"] = commit_json[-1]["sha"]
ref = event["pull_request"]["head"]["ref"]
data["pull_id"] = event["pull_request"]["number"]
data["pull_name"] = shlex.quote(event["pull_request"]["title"])
else:
data["commit_comment"] = shlex.quote(event["commits"][-1]["message"])
data["commit_hash"] = event["commits"][-1]["id"]
ref = event["ref"]
data["commit_sha"] = data["commit_hash"][:8]
data["branch_name"] = re.sub("refs/\w+/", "", ref)
data["suffix"] = (
data["branch_name"].replace("/", "_")
+ "-"
+ current_time.strftime("%d%m%Y")
+ "-"
+ data["commit_sha"]
)
if ref.startswith("refs/tags/"):
data["suffix"] = data["branch_name"].replace("/", "_")
return data
def add_envs(data, env_file, args):
print(f'COMMIT_MSG={data["commit_comment"]}', file=env_file)
print(f'COMMIT_HASH={data["commit_hash"]}', file=env_file)
print(f'COMMIT_SHA={data["commit_sha"]}', file=env_file)
print(f'SUFFIX={data["suffix"]}', file=env_file)
print(f'BRANCH_NAME={data["branch_name"]}', file=env_file)
print(f'DIST_SUFFIX={data["suffix"]}', file=env_file)
print(f'WORKFLOW_BRANCH_OR_TAG={data["branch_name"]}', file=env_file)
if args.is_pull:
print(f'PULL_ID={data["pull_id"]}', file=env_file)
print(f'PULL_NAME={data["pull_name"]}', file=env_file)
def main():
args = parse_args()
event_file = open(args.event_file)
event = json.load(event_file)
env_file = open(os.environ["GITHUB_ENV"], "a")
data = get_details(event, args)
add_envs(data, env_file, args)
event_file.close()
env_file.close()
if __name__ == "__main__":
main()

View File

@@ -13,7 +13,7 @@ if not [%FBT_NOENV%] == [] (
exit /b 0
)
set "FLIPPER_TOOLCHAIN_VERSION=9"
set "FLIPPER_TOOLCHAIN_VERSION=12"
set "FBT_TOOLCHAIN_ROOT=%FBT_ROOT%\toolchain\i686-windows"

View File

@@ -5,7 +5,7 @@
# public variables
DEFAULT_SCRIPT_PATH="$(pwd -P)";
SCRIPT_PATH="${SCRIPT_PATH:-$DEFAULT_SCRIPT_PATH}";
FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"8"}";
FBT_TOOLCHAIN_VERSION="${FBT_TOOLCHAIN_VERSION:-"12"}";
FBT_TOOLCHAIN_PATH="${FBT_TOOLCHAIN_PATH:-$SCRIPT_PATH}";
fbtenv_show_usage()