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 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 ExecuteStackAsProcess(stackFile: str, stacksFolder: str, noLogs: bool, logsFolder: str, artifactIdentifier='docker-compose.'): stackName, version, stackFileIsValid = StackVersionTools.GetStackNameAndVersionFromStackFile( stackFile, artifactIdentifier=artifactIdentifier) if not (stackFileIsValid): exitCode = 0 return exitCode temporaryStackFile = __GenerateStackFileWithContainerNames( stackFile, stackName, version, stacksFolder) try: DockerComposeTools.DockerComposeUp([temporaryStackFile]) exitCode = __VerifyStackExecutedSuccessfully(temporaryStackFile, stackName, version, noLogs, logsFolder) DockerComposeTools.DockerComposeDown([temporaryStackFile]) finally: os.remove(temporaryStackFile) if exitCode > 0: warnings.warn("Stack '" + stackName + "' FAILED!") else: print(stackName + " stack finished with success.") return exitCode
def test_b_ComposeUp(self): print('COMPOSE RUN') TerminalTools.LoadEnvironmentVariables( os.path.join(TestTools.TEST_SAMPLE_FOLDER, '.env')) DockerComposeTools.DockerComposeUp( [os.path.join(TestTools.TEST_SAMPLE_FOLDER, 'docker-compose.yml')]) print('DONE COMPOSE RUN')
def RunSelection(runSelection): cwd = BuildTools.TryChangeToDirectoryAndGetCwd(runSelection) DockerComposeTools.DockerComposeUp( runSelection[BuildTools.FILES_KEY], BuildTools.TryGetFromDictionary(runSelection, ABORT_ON_CONTAINER_EXIT_KEY, True), BuildTools.TryGetFromDictionary(runSelection, DETACHED_KEY, False)) os.chdir(cwd)
def BuildDocker(buildSelection): srcFolder = ['src', '..'] miniSwarmManagementFile = 'swarm-management.yml' migratorComposeFiles = [ 'docker-compose.migrator.yml' ] generalComposeFiles = [ 'docker-compose.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'], ['kafkaoncontainers-tests']) 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 RunSelection(runSelection): cwd = BuildTools.TryChangeToDirectoryAndGetCwd(runSelection) BuildTools.HandleTerminalCommandsSelection(runSelection) if BuildTools.FILES_KEY in runSelection: DockerComposeTools.DockerComposeUp( runSelection[BuildTools.FILES_KEY], BuildTools.TryGetFromDictionary(runSelection, ABORT_ON_CONTAINER_EXIT_KEY, True), BuildTools.TryGetFromDictionary(runSelection, DETACHED_KEY, False)) BuildTools.HandleCopyFromContainer(runSelection) os.chdir(cwd)
def RunSelection(runSelection, selectionToRun): cwd = BuildTools.TryChangeToDirectoryAndGetCwd(runSelection) oldEnvironmentVariable = BuildTools.AddEnvironmentVariablesFromSelection( runSelection) BuildTools.HandleTerminalCommandsSelection(runSelection) TerminalTools.LoadDefaultEnvironmentVariablesFile() if BuildTools.FILES_KEY in runSelection: runComposeFile = BuildTools.GetAvailableComposeFilename( 'run', selectionToRun) composeFiles = runSelection[BuildTools.FILES_KEY] if YamlTools.TryGetFromDictionary(runSelection, VERIFY_CONTAINER_EXIT_CODE, False): containerNames = BuildTools.MergeAndPopulateWithContainerNames( composeFiles, runComposeFile) if BuildTools.CONTAINER_NAMES_KEY in runSelection: containerNames = runSelection[BuildTools.CONTAINER_NAMES_KEY] else: containerNames = [] DockerComposeTools.MergeComposeFiles(composeFiles, runComposeFile) try: DockerComposeTools.DockerComposeUp( [runComposeFile], YamlTools.TryGetFromDictionary(runSelection, ABORT_ON_CONTAINER_EXIT_KEY, True), YamlTools.TryGetFromDictionary(runSelection, DETACHED_KEY, False)) except: BuildTools.RemoveComposeFileIfNotPreserved(runComposeFile, runSelection) raise DockerImageTools.VerifyContainerExitCode(containerNames, assertExitCodes=True) BuildTools.HandleCopyFromContainer(runSelection) if YamlTools.TryGetFromDictionary(runSelection, BuildTools.REMOVE_CONTAINERS_KEY, False): DockerComposeTools.DockerComposeRemove([runComposeFile]) BuildTools.RemoveComposeFileIfNotPreserved(runComposeFile, runSelection) BuildTools.RemoveEnvironmentVariables(oldEnvironmentVariable) os.chdir(cwd)
def PublishArtifactSelection(publishSelection): DockerComposeTools.DockerComposeBuild( publishSelection[BuildTools.FILES_KEY]) DockerComposeTools.DockerComposeUp(publishSelection[BuildTools.FILES_KEY], False)