diff options
-rw-r--r-- | .cirrus.star | 63 | ||||
-rw-r--r-- | .cirrus.tasks.yml (renamed from .cirrus.yml) | 0 |
2 files changed, 63 insertions, 0 deletions
diff --git a/.cirrus.star b/.cirrus.star new file mode 100644 index 00000000000..d2d6ceca207 --- /dev/null +++ b/.cirrus.star @@ -0,0 +1,63 @@ +"""Additional CI configuration, using the starlark language. See +https://cirrus-ci.org/guide/programming-tasks/#introduction-into-starlark + +See also the starlark specification at +https://github.com/bazelbuild/starlark/blob/master/spec.md + +See also .cirrus.yml and src/tools/ci/README +""" + +load("cirrus", "env", "fs") + + +def main(): + """The main function is executed by cirrus-ci after loading .cirrus.yml and can + extend the CI definition further. + + As documented in .cirrus.yml, the final CI configuration is composed of + + 1) the contents of .cirrus.yml + + 2) if defined, the contents of the file referenced by the, repository + level, REPO_CI_CONFIG_GIT_URL variable (see + https://cirrus-ci.org/guide/programming-tasks/#fs for the accepted + format) + + 3) .cirrus.tasks.yml + """ + + output = "" + + # 1) is evaluated implicitly + + # Add 2) + repo_config_url = env.get("REPO_CI_CONFIG_GIT_URL") + if repo_config_url != None: + print("loading additional configuration from \"{}\"".format(repo_config_url)) + output += config_from(repo_config_url) + else: + output += "\n# REPO_CI_CONFIG_URL was not set\n" + + # Add 3) + output += config_from(".cirrus.tasks.yml") + + return output + + +def config_from(config_src): + """return contents of config file `config_src`, surrounded by markers + indicating start / end of the the included file + """ + + config_contents = fs.read(config_src) + config_fmt = """ + +### +# contents of config file `{0}` start here +### +{1} +### +# contents of config file `{0}` end here +### +""" + return config_fmt.format(config_src, config_contents) diff --git a/.cirrus.yml b/.cirrus.tasks.yml index f4276ad8692..f4276ad8692 100644 --- a/.cirrus.yml +++ b/.cirrus.tasks.yml |