xcookie.builders.gitlab_ci module

class xcookie.builders.gitlab_ci.GitLabCIRenderer(applier, plan: CIPlan | None = None)[source]

Bases: object

Render GitLab CI YAML from a provider-neutral CI plan.

render() → str[source]
xcookie.builders.gitlab_ci._add_yaml_merge(target, referent)[source]

Attach a YAML merge key across ruamel.yaml versions.

Older xcookie code used add_yaml_merge([(0, referent)]). Newer ruamel.yaml releases expect a MergeValue object; plain lists can be accepted by add_yaml_merge but fail later while dumping because they do not provide sequence / merge_pos attributes.

xcookie.builders.gitlab_ci.build_gitlab_ci(self)[source]

Example

>>> from xcookie.builders.gitlab_ci import *  # NOQA
>>> from xcookie.main import XCookieConfig
>>> from xcookie.main import TemplateApplier
>>> config = XCookieConfig(tags=['purepy'], repo_name='mymod')
>>> config['enable_gpg'] = False
>>> config['linter'] = False
>>> config['test_variants'] = ['full-loose']
>>> config['ci_cpython_versions'] = config['ci_cpython_versions'][-2:]
>>> self = TemplateApplier(config)
>>> text = build_gitlab_ci(self)
>>> print(ub.highlight_code(text, 'yaml'))
xcookie.builders.gitlab_ci.build_gitlab_rules(self)[source]
xcookie.builders.gitlab_ci.workflow_section()[source]
xcookie.builders.gitlab_ci.make_purepy_ci_jobs(self, plan: CIPlan | None = None)[source]
xcookie.builders.gitlab_ci.make_binpy_ci_jobs(self, plan: CIPlan | None = None)[source]
xcookie.builders.gitlab_ci.build_lint_job(self, common_template, deploy_image, plan: CIPlan | None = None)[source]
xcookie.builders.gitlab_ci.build_gpg_job(self, common_template, deploy_image, wheelhouse_dpath)[source]
xcookie.builders.gitlab_ci.build_deploy_job(self, common_template, deploy_image, wheelhouse_dpath)[source]