# The guide to programming cirrus-ci tasks using starlark is found at # https://cirrus-ci.org/guide/programming-tasks/ # # In this simple starlark script we simply check conditions for whether # a CI run should go ahead. If the conditions are met, then we just # return the yaml containing the tasks to be run. load("cirrus", "env", "fs", "http") def main(ctx): ###################################################################### # Should wheels be built? # Only test on the numpy/numpy repository ###################################################################### if env.get("CIRRUS_REPO_FULL_NAME") != "numpy/numpy": return [] # only run the wheels entry on a cron job if env.get("CIRRUS_CRON", "") == "nightly": return fs.read("tools/ci/cirrus_wheels.yml") # Obtain commit message for the event. Unfortunately CIRRUS_CHANGE_MESSAGE # only contains the actual commit message on a non-PR trigger event. # For a PR event it contains the PR title and description. SHA = env.get("CIRRUS_CHANGE_IN_REPO") url = "https://api.github.com/repos/numpy/numpy/git/commits/" + SHA dct = http.get(url).json() commit_msg = dct["message"] if "[skip cirrus]" in commit_msg or "[skip ci]" in commit_msg: return [] wheel = False labels = env.get("CIRRUS_PR_LABELS", "") pr_number = env.get("CIRRUS_PR", "-1") tag = env.get("CIRRUS_TAG", "") if "[wheel build]" in commit_msg: wheel = True # if int(pr_number) > 0 and ("14 - Release" in labels or "36 - Build" in labels): # wheel = True if tag.startswith("v") and "dev0" not in tag: wheel = True if wheel: return fs.read("tools/ci/cirrus_wheels.yml") if int(pr_number) < 0: return [] return fs.read("tools/ci/cirrus_arm.yml")