[go: nahoru, domu]

blob: 2a8b507b615b77ff2e87b2f647ad80dd1c4eee42 [file] [log] [blame]
#! /usr/bin/env python3
import sys
import getopt
import json
import os
def usage(exitCode):
print("""
Usage:
./should_run_project.py --project <project-name> --branch <current branch name>\n\
project-name: the name of the project from the workflow file\n\
branch: the target branch on the build\n\
Branches whose name starts with 'compose' use the compose configuration whereas\n\
everything else uses the main configuration\n\
See ci-config.json for the configuration.
""")
sys.exit(exitCode)
# finds the configuration we should use based on the branch
def getCurrentConfig(branch: str):
configFilePath = os.path.join(os.path.dirname(
os.path.realpath(__file__)), "ci-config.json")
configFile = open(configFilePath)
ciConfig = json.load(configFile)
configFile.close()
if "compose-compiler" in branch:
return ciConfig["compose"]
else:
return ciConfig["main"]
def main(argv):
projectName = ''
branch = ''
try:
opts, args = getopt.getopt(argv, "h", ["project=", "branch="])
except getopt.GetoptError as err:
print(err)
usage(2)
for opt, arg in opts:
if opt == '-h':
usage(0)
elif opt in ("--project"):
projectName = arg
elif opt in ("--branch"):
branch = arg
else:
print("invalid argument ", opt, "-", arg)
usage(2)
currentConfig = getCurrentConfig(branch)
result = currentConfig["default"]
if "include" in currentConfig:
result = projectName in currentConfig["include"]
# run exclude after include to give it priority
if "exclude" in currentConfig:
result = not (projectName in currentConfig["exclude"])
print(str(result).lower())
if __name__ == "__main__":
main(sys.argv[1:])