dda-devops-build/doc/DevopsBuild.md

2.7 KiB

DevopsBuild

DevopsBuild provides the build foundations.

classDiagram
    class DevopsBuild {
        build_path() - the build dir in target
        initialize_build_dir() - copy current directory & additional files to target
        name() - the name of build
    }

Input

name description default
name dedicated name of the build module
module module name - may result in a hierarchy like name/module
stage sth. like test, int, acc or prod
project_root_path relative path to projects root. Is used to locate the target dir
build_dir_name name of dir, build is executed in target
build_types list of special builds used. Valid values are ["IMAGE", "C4K", "K3S", "TERRAFORM"] []
mixin_types mixins are orthoganl to builds and represent additional capabilities. Valid Values are ["RELEASE"] []
module module name - may result in a hierarchy like name/module
name dedicated name of the build module
project_root_path relative path to projects root. Is used to locate the target dir
stage sth. like test, int, acc or prod

Example Usage

build.py

from subprocess import run
from pybuilder.core import task, init
from ddadevops import *

name = 'my-project'
MODULE = 'my-module'
PROJECT_ROOT_PATH = '..'

@init
def initialize(project):
    project.build_depends_on("ddadevops>=4.0.0")

    config = {
        "name": name,
        "module": MODULE,
        "stage": environ["STAGE"],
        "project_root_path": PROJECT_ROOT_PATH,
        "build_types": [],
        "mixin_types": [],
    }

    build = DevopsBuild(project, config)
    build.initialize_build_dir()


@task
def list_build_dir(project):
    build = get_devops_build(project)
    run(f"ls -la {build.build_path()}")

call the build

pyb list_build_dir