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")
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)
def ExportChangelogSelection(changelogSelection): if not (FILE_KEY in changelogSelection): return VersionTools.ExportVersionFromChangelogToEnvironment( changelogSelection[FILE_KEY], BuildTools.TryGetFromDictionary(changelogSelection, ENV_VERSION_KEY, 'VERSION'))
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))
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)
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')
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