Example #1
0
 def test_ExportVersionFromChangelogToEnvironment(self):
     
     os.environ.clear()
     VersionTools.ExportVersionFromChangelogToEnvironment(os.path.join(TestTools.TEST_SAMPLE_FOLDER, 'CHANGELOG.md'), 'VERSION')
     self.assertEqual(os.environ['VERSION'], '1.0.0')
     
     os.environ.clear()
     VersionTools.ExportVersionFromChangelogToEnvironment(os.path.join(TestTools.TEST_SAMPLE_FOLDER, 'CHANGELOG.v2.md'), 'VERSION')
     self.assertEqual(os.environ['VERSION'], '1.0.0')
def BuildDocker(buildSelection):
    VersionTools.ExportVersionFromChangelogToEnvironment('CHANGELOG.md', 'VERSION')
    composeFiles = [
        'docker-compose.yml'
    ]

    if buildSelection == "run":
        DockerComposeTools.DockerComposeUp(composeFiles)

    if buildSelection == "run":
        DockerComposeTools.DockerComposeUp(composeFiles)

    elif buildSelection == "test":
        testContainerNames = ['my-service']
        DockerComposeTools.ExecuteComposeTests(composeFiles, testContainerNames)

    elif buildSelection == "publish":
        BuildDocker("build")
        DockerComposeTools.DockerComposePush(composeFiles)
        DockerComposeTools.PublishDockerImagesWithNewTag(composeFiles, 'latest')

    elif buildSelection == "help":
        TerminalTools.PrintAvailableCommands(AvailableCommands)

    else:
        print("Please provide a valid build argument: ")
        BuildDocker("help")
Example #3
0
def SignNugetPackages(certificateFilePath,
                      certificatePassword,
                      packageInputUnsignedFolder=PACKAGE_INPUT_UNSIGNED_FOLDER,
                      packageOutputSignedFolder=PACKAGE_OUTPUT_SIGNED_FOLDER,
                      allowMissingCertificateFilePath=False,
                      timestamperUrl=TIMESTAMPER_URL,
                      changelogPath=CHANGELOG_PATH):

    version = VersionTools.GetVersionFromChangelog(changelogPath)
    nugetPackages = GetNugets(packageInputUnsignedFolder, version)
    if len(nugetPackages) == 0:
        print("SignNugetPackages: No packages found in {}".format(
            packageInputUnsignedFolder))

    for nugetPackage in nugetPackages:
        ok = SignNugetPackage(nugetPackage, certificateFilePath,
                              certificatePassword, timestamperUrl,
                              packageOutputSignedFolder,
                              allowMissingCertificateFilePath)
        if ok == 0:
            if allowMissingCertificateFilePath:
                continue
            else:
                raise Exception(
                    "certificateFilePath not found, not able to sign. Set -allowMissingCertificateFilePath true to allow it."
                )

        signedNugetPackage = os.path.join(packageOutputSignedFolder,
                                          os.path.basename(nugetPackage))
        VerifySignedNugetPackage(signedNugetPackage)
Example #4
0
def ExportChangelogSelection(changelogSelection):
    if not (FILE_KEY in changelogSelection):
        return

    VersionTools.ExportVersionFromChangelogToEnvironment(
        changelogSelection[FILE_KEY],
        BuildTools.TryGetFromDictionary(changelogSelection, ENV_VERSION_KEY,
                                        'VERSION'))
Example #5
0
def BuildDocker(buildSelection):
    VersionTools.ExportVersionFromChangelogToEnvironment(
        'CHANGELOG.md', 'VERSION')
    srcFolder = ['src', '..']
    miniSwarmManagementFile = 'swarm-management.yml'
    migratorComposeFiles = ['docker-compose.migrator.yml']
    nugetDockerComposeFiles = ['docker-compose.publish.nuget.yml']
    generalComposeFiles = [
        'docker-compose.message.handler.yml',
        'docker-compose.outboxcleaner.yml',
        'docker-compose.message.spammer.yml'
    ]

    if buildSelection == 'run':
        os.chdir(srcFolder[0])
        DockerComposeTools.DockerComposeUp(migratorComposeFiles)
        DockerComposeTools.DockerComposeUp(generalComposeFiles)
        os.chdir(srcFolder[1])

    elif buildSelection == 'build':
        os.chdir(srcFolder[0])
        DockerComposeTools.DockerComposeBuild(generalComposeFiles +
                                              migratorComposeFiles)
        os.chdir(srcFolder[1])

    elif buildSelection == 'test':
        os.chdir(srcFolder[0])
        DockerComposeTools.ExecuteComposeTests(['docker-compose.tests.yml'],
                                               ['saferebus-tests'])
        os.chdir(srcFolder[1])

    elif buildSelection == 'publish':
        os.chdir(srcFolder[0])
        DockerComposeTools.DockerComposeBuild(nugetDockerComposeFiles)
        DockerComposeTools.DockerComposeUp(nugetDockerComposeFiles, False)
        os.chdir(srcFolder[1])

    elif buildSelection == 'start-dev':
        os.chdir(srcFolder[0] + '/ServiceDependencies')
        SwarmManager.HandleManagement(
            ['-start', '-f', miniSwarmManagementFile])
        os.chdir(srcFolder[1] + '/..')

    elif buildSelection == 'stop-dev':
        os.chdir(srcFolder[0] + '/ServiceDependencies')
        SwarmManager.HandleManagement(['-stop', '-f', miniSwarmManagementFile])
        os.chdir(srcFolder[1] + '/..')

    elif buildSelection == 'help':
        TerminalTools.PrintAvailableCommands(AvailableCommands)

    else:
        print('Please provide a valid build argument: ')
        BuildDocker('help')
def ExportChangelogSelection(changelogSelection):
    if not (FILE_KEY in changelogSelection):
        return

    VersionTools.ExportVersionFromChangelogToEnvironment(
        changelogSelection[FILE_KEY],
        YamlTools.TryGetFromDictionary(changelogSelection, ENV_VERSION_KEY,
                                       'VERSION'),
        YamlTools.TryGetFromDictionary(changelogSelection,
                                       ENV_VERSION_MAJOR_KEY, None),
        YamlTools.TryGetFromDictionary(changelogSelection,
                                       ENV_VERSION_MINOR_KEY, None))
Example #7
0
def SignNugetPackages(certificateFilePath,
                      certificatePassword,
                      nugetFolder=NUGET_FOLDER,
                      timestamperUrl=TIMESTAMPER_URL,
                      outputDirectory=OUTPOUT_DIRECTORY,
                      changelogPath=CHANGELOG_PATH):
    version = VersionTools.GetVersionFromChangelog(changelogPath)
    nugetPackages = GetNugets(nugetFolder, version)
    for nugetPackage in nugetPackages:
        SignNugetPackage(nugetPackage, certificateFilePath,
                         certificatePassword, timestamperUrl, outputDirectory)
        signedNugetPackage = os.path.join(outputDirectory,
                                          os.path.basename(nugetPackage))
        VerifySignedNugetPackage(signedNugetPackage)
Example #8
0
 def test_GetVersionFromChangelog(self):
     
     version = VersionTools.GetVersionFromChangelog(os.path.join(TestTools.TEST_SAMPLE_FOLDER, 'CHANGELOG.md'))
     self.assertEqual(version, '1.0.0')
     version = VersionTools.GetVersionFromChangelog(os.path.join(TestTools.TEST_SAMPLE_FOLDER, 'CHANGELOG.v2.md'))
     self.assertEqual(version, '1.0.0')
Example #9
0
from setuptools import setup, find_packages
from codecs import open
import os
from DockerBuildSystem import VersionTools

here = os.path.abspath(os.path.dirname(__file__))

with open(os.path.join(here, 'README.md'), encoding='utf-8') as f:
    long_description = f.read()

with open('requirements.txt') as f:
    reqLines = f.readlines()
REQUIREMENTS = [
    reqLine.replace('\r', '').replace('\n', '') for reqLine in reqLines
]
VERSION = VersionTools.GetVersionFromChangelog('CHANGELOG.md')

PACKAGE_NAME = 'DockerFeed'
PACKAGE_CONSOLE_NAME = 'dockerf'
setup(
    name=PACKAGE_NAME,  # Required
    version=VERSION,  # Required
    description='Docker Feed tool',  # Required
    long_description=long_description,  # Optional
    long_description_content_type='text/markdown',  # Optional
    url='https://github.com/DIPSAS/DockerFeed',  # Optional
    author='DIPS AS',  # Optional
    author_email='[email protected],[email protected]',  # Optional
    include_package_data=True,
    classifiers=[  # Optional
        # How mature is this project? Common values are