forked from espressif/esp-idf
CI: support customize test with @bot
This commit is contained in:
38
tools/ci/checkout_project_ref.py
Executable file
38
tools/ci/checkout_project_ref.py
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
# internal use only
|
||||
# called by CI jobs when it uses a project related to IDF
|
||||
|
||||
import os
|
||||
import json
|
||||
import argparse
|
||||
import subprocess
|
||||
|
||||
|
||||
def checkout_branch(proj_name, customized_revision, default_ref_name):
|
||||
try:
|
||||
ref_to_use = customized_revision[proj_name.lower()]
|
||||
except (KeyError, TypeError):
|
||||
ref_to_use = default_ref_name
|
||||
|
||||
try:
|
||||
subprocess.check_call(["git", "checkout", ref_to_use])
|
||||
print("CI using ref {} for project {}".format(ref_to_use, proj_name))
|
||||
except subprocess.CalledProcessError:
|
||||
print("using default branch")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("project",
|
||||
help="the name of project")
|
||||
|
||||
args = parser.parse_args()
|
||||
project_name = args.project
|
||||
|
||||
customized_project_revisions = os.getenv("BOT_CUSTOMIZED_REVISION")
|
||||
if customized_project_revisions:
|
||||
customized_project_revisions = json.loads(customized_project_revisions)
|
||||
ci_ref_name = os.getenv("CI_COMMIT_REF_NAME")
|
||||
|
||||
checkout_branch(project_name, customized_project_revisions, ci_ref_name)
|
Reference in New Issue
Block a user