1 """Additional CI configuration, using the starlark language. See
2 https://cirrus-ci.org/guide/programming-tasks/#introduction-into-starlark
4 See also the starlark specification at
5 https://github.com/bazelbuild/starlark/blob/master/spec.md
7 See also .cirrus.yml and src/tools/ci/README
10 load("cirrus", "env", "fs")
14 """The main function is executed by cirrus-ci after loading .cirrus.yml and can
15 extend the CI definition further.
17 As documented in .cirrus.yml, the final CI configuration is composed of
19 1) the contents of .cirrus.yml
21 2) if defined, the contents of the file referenced by the, repository
22 level, REPO_CI_CONFIG_GIT_URL variable (see
23 https://cirrus-ci.org/guide/programming-tasks/#fs for the accepted
31 # 1) is evaluated implicitly
34 repo_config_url = env.get("REPO_CI_CONFIG_GIT_URL")
35 if repo_config_url != None:
36 print("loading additional configuration from \"{}\"".format(repo_config_url))
37 output += config_from(repo_config_url)
39 output += "\n# REPO_CI_CONFIG_URL was not set\n"
42 output += config_from(".cirrus.tasks.yml")
47 def config_from(config_src):
48 """return contents of config file `config_src`, surrounded by markers
49 indicating start / end of the the included file
52 config_contents = fs.read(config_src)
56 # contents of config file `{0}` start here
60 # contents of config file `{0}` end here
63 return config_fmt.format(config_src, config_contents)