GitLab-CI ExtensionΒΆ

Extension that generates configuration and script files for GitLab CI.

from typing import List

from .. import structure
from ..actions import Action, ActionParams, ScaffoldOpts, Structure
from ..operations import no_overwrite
from ..templates import get_template
from . import Extension

class GitLab(Extension):
    """Generate GitLab CI configuration files"""

    def activate(self, actions: List[Action]) -> List[Action]:
        """Activate extension, see :obj:`~pyscaffold.extension.Extension.activate`."""
        return self.register(actions, add_files, after="define_structure")

def add_files(struct: Structure, opts: ScaffoldOpts) -> ActionParams:
    """Add .gitlab-ci.yml file to structure

        struct: project representation as (possibly) nested :obj:`dict`.
        opts: given options, see :obj:`create_project` for an extensive list.

        struct, opts: updated project representation and options
    files: ScaffoldOpts = {
        ".gitlab-ci.yml": (get_template("gitlab_ci"), no_overwrite())

    return structure.merge(struct, files), opts