working package
This commit is contained in:
parent
de2777d53a
commit
19688912d3
7 changed files with 37 additions and 24 deletions
22
build.py
22
build.py
|
@ -1,4 +1,4 @@
|
||||||
# dda-devops-build
|
# dda_devops_build
|
||||||
# Copyright 2019 meissa GmbH.
|
# Copyright 2019 meissa GmbH.
|
||||||
#
|
#
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -17,16 +17,17 @@
|
||||||
from pybuilder.core import init, use_plugin, Author
|
from pybuilder.core import init, use_plugin, Author
|
||||||
|
|
||||||
use_plugin("python.core")
|
use_plugin("python.core")
|
||||||
|
use_plugin("filter_resources")
|
||||||
#use_plugin("python.unittest")
|
#use_plugin("python.unittest")
|
||||||
#use_plugin("python.coverage")
|
#use_plugin("python.coverage")
|
||||||
use_plugin("python.distutils")
|
use_plugin("python.distutils")
|
||||||
|
|
||||||
use_plugin("python.install_dependencies")
|
#use_plugin("python.install_dependencies")
|
||||||
|
|
||||||
default_task = "publish"
|
default_task = "publish"
|
||||||
|
|
||||||
name = 'dda_devops_build'
|
name = "ddadevops"
|
||||||
version = "0.1.4"
|
version = "0.1.13"
|
||||||
summary = "tools to support builds combining gopass, terraform, dda-pallet, aws & hetzner-cloud"
|
summary = "tools to support builds combining gopass, terraform, dda-pallet, aws & hetzner-cloud"
|
||||||
description = __doc__
|
description = __doc__
|
||||||
authors = [Author("meissa GmbH", "buero@meissa-gmbh.de")]
|
authors = [Author("meissa GmbH", "buero@meissa-gmbh.de")]
|
||||||
|
@ -38,14 +39,19 @@ def initialize(project):
|
||||||
#project.build_depends_on('mockito')
|
#project.build_depends_on('mockito')
|
||||||
#project.build_depends_on('unittest-xml-reporting')
|
#project.build_depends_on('unittest-xml-reporting')
|
||||||
|
|
||||||
project.set_property("dir_source_unittest_python", "src/unittest/python")
|
project.set_property("verbose", True)
|
||||||
|
project.get_property("filter_resources_glob").append("**/ddadevops/__init__.py")
|
||||||
|
#project.set_property("dir_source_unittest_python", "src/unittest/python")
|
||||||
|
|
||||||
#project.set_property('distutils_upload_sign', True)
|
#project.set_property('distutils_upload_sign', True)
|
||||||
#project.set_property('distutils_upload_sign_identity', '')
|
#project.set_property('distutils_upload_sign_identity', '')
|
||||||
project.set_property('distutils_readme_file', 'README.md')
|
project.set_property("distutils_readme_description", True)
|
||||||
|
project.set_property("distutils_description_overwrite", True)
|
||||||
project.set_property("distutils_classifiers", [
|
project.set_property("distutils_classifiers", [
|
||||||
'License :: OSI Approved :: Apache Software License',
|
'License :: OSI Approved :: Apache Software License',
|
||||||
'Programming Language :: Python',
|
'Programming Language :: Python',
|
||||||
'Programming Language :: Python :: 2.7',
|
'Programming Language :: Python :: 2.7',
|
||||||
'Programming Language :: Python :: 3',
|
'Programming Language :: Python :: 3',
|
||||||
'Programming Language :: Python :: 3.7',])
|
'Programming Language :: Python :: 3.7',
|
||||||
|
'Topic :: Software Development :: Build Tools',
|
||||||
|
])
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
from .dda_pallet import *
|
|
||||||
from .meissa_build import *
|
|
||||||
from .terraform import *
|
|
||||||
|
|
||||||
__version__ = "${version}"
|
|
11
src/main/python/ddadevops/__init__.py
Normal file
11
src/main/python/ddadevops/__init__.py
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
"""
|
||||||
|
ddadevops provide tools to support builds combining gopass,
|
||||||
|
terraform, dda-pallet, aws & hetzner-cloud.
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from .dda_pallet import *
|
||||||
|
from .meissa_build import *
|
||||||
|
from .terraform import *
|
||||||
|
|
||||||
|
__version__ = "${version}"
|
|
@ -1,12 +1,12 @@
|
||||||
import credential
|
|
||||||
import os
|
import os
|
||||||
|
from .credential import gopass_credential_from_env_path
|
||||||
|
|
||||||
def init_project(project):
|
def init_project(project):
|
||||||
project.set_property('stage', os.environ.get('STAGE', 'intergation'))
|
project.set_property('stage', os.environ.get('STAGE', 'intergation'))
|
||||||
project.set_property('http_net_api_key',
|
project.set_property('http_net_api_key',
|
||||||
credential.gopass_credential_from_env_path('HTTP_NET_API_KEY_PATH'))
|
gopass_credential_from_env_path('HTTP_NET_API_KEY_PATH'))
|
||||||
project.set_property('hetzner_api_key',
|
project.set_property('hetzner_api_key',
|
||||||
credential.gopass_credential_from_env_path('HETZNER_API_KEY_PATH'))
|
gopass_credential_from_env_path('HETZNER_API_KEY_PATH'))
|
||||||
|
|
||||||
def hetzner_api_key(project):
|
def hetzner_api_key(project):
|
||||||
return project.get_property('hetzner_api_key')
|
return project.get_property('hetzner_api_key')
|
|
@ -1,8 +1,9 @@
|
||||||
from subprocess import check_output, call, Popen, PIPE
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import json
|
import json
|
||||||
import meissa_build
|
|
||||||
|
from subprocess import check_output, call, Popen, PIPE
|
||||||
|
from .meissa_build import stage, hetzner_api_key, tf_import_name, tf_import_resource
|
||||||
|
|
||||||
APPLY_PLAN = "proposed_apply.plan"
|
APPLY_PLAN = "proposed_apply.plan"
|
||||||
DESTROY_PLAN = "proposed_destroy.plan"
|
DESTROY_PLAN = "proposed_destroy.plan"
|
||||||
|
@ -43,9 +44,9 @@ def terraform(cmd, credentials=None, options=None):
|
||||||
def init(project):
|
def init(project):
|
||||||
terraform(TF_INIT_CMD)
|
terraform(TF_INIT_CMD)
|
||||||
try:
|
try:
|
||||||
terraform(TF_SELECT_WORKSPACE_CMD, None, [meissa_build.stage(project)])
|
terraform(TF_SELECT_WORKSPACE_CMD, None, [stage(project)])
|
||||||
except:
|
except:
|
||||||
terraform(TF_NEW_WORKSPACE_CMD, None, [meissa_build.stage(project)])
|
terraform(TF_NEW_WORKSPACE_CMD, None, [stage(project)])
|
||||||
|
|
||||||
def write_output():
|
def write_output():
|
||||||
output = terraform(TF_OUTPUT_CMD)
|
output = terraform(TF_OUTPUT_CMD)
|
||||||
|
@ -57,10 +58,10 @@ def read_output_json():
|
||||||
return json.load(f)
|
return json.load(f)
|
||||||
|
|
||||||
def get_hetzner_api_key_as_var(project):
|
def get_hetzner_api_key_as_var(project):
|
||||||
hetzner_api_key = meissa_build.hetzner_api_key(project)
|
my_hetzner_api_key = hetzner_api_key(project)
|
||||||
ret = []
|
ret = []
|
||||||
if hetzner_api_key:
|
if my_hetzner_api_key:
|
||||||
ret.extend(['-var', 'hetzner_api_key=' + hetzner_api_key])
|
ret.extend(['-var', 'hetzner_api_key=' + my_hetzner_api_key])
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def plan_apply(project):
|
def plan_apply(project):
|
||||||
|
@ -69,7 +70,7 @@ def plan_apply(project):
|
||||||
|
|
||||||
def tf_import(project):
|
def tf_import(project):
|
||||||
init(project)
|
init(project)
|
||||||
terraform(TF_IMPORT_CMD, get_hetzner_api_key_as_var(project), [meissa_build.tf_import_name(project), meissa_build.tf_import_resource(project)])
|
terraform(TF_IMPORT_CMD, get_hetzner_api_key_as_var(project), [tf_import_name(project), tf_import_resource(project)])
|
||||||
|
|
||||||
def plan_destroy(project):
|
def plan_destroy(project):
|
||||||
init(project)
|
init(project)
|
Loading…
Reference in a new issue