esp-idf/tools/ci/checkout_project_ref.py
2017-11-08 11:36:16 +08:00

39 lines
1.1 KiB
Python
Executable File

#!/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)