62 lines
1.9 KiB
Crystal
62 lines
1.9 KiB
Crystal
|
|
require "./deployment/*"
|
|
# run_script_to_dokku_app"
|
|
# require "./deployment/transfer_docker_image_to_dokku_app"
|
|
# require "./deployment/transfer_mysql_dump_to_dokku_mariadb"
|
|
|
|
|
|
class Deployment
|
|
def self.apply_config!(config)
|
|
config.deployments.each do |deployment_config|
|
|
Deployment.apply_deployment!(config, deployment_config)
|
|
end
|
|
end
|
|
|
|
def self.apply_deployment!(config : Config, deployment_config : TransferDeploymentConfig)
|
|
src = config.find_endpoint(deployment_config.transfer.src)
|
|
dest = config.find_endpoint(deployment_config.transfer.dest)
|
|
|
|
puts "Trying TransferDeploymentConfig: #{src.class} --> #{dest.class}..."
|
|
self.apply_transfer!(config, src, dest)
|
|
end
|
|
|
|
def self.apply_deployment!(config : Config, deployment_config : RunDeploymentConfig)
|
|
src = config.find_endpoint(deployment_config.run.src)
|
|
dest = config.find_endpoint(deployment_config.run.dest)
|
|
puts "Trying RunDeploymentConfig: #{src.class} --> #{dest.class}..."
|
|
|
|
self.apply_run!(config, src, dest)
|
|
end
|
|
|
|
def self.apply_run!(config, src, dest)
|
|
puts "WARNING: run #{src.class} --> #{dest.class} missing!".colorize(:yellow)
|
|
end
|
|
|
|
def self.apply_transfer!(config, src, dest)
|
|
puts "WARNING: transfer #{src.class} --> #{dest.class} missing!".colorize(:yellow)
|
|
end
|
|
|
|
def something
|
|
deployment =
|
|
case deployment_config
|
|
when DokkuAppDeploymentConfig then
|
|
DockerImageToDokkuAppDeployment.new(
|
|
local.as(DockerImageLocalConfig),
|
|
remote,
|
|
deployment_config.as(DokkuAppDeploymentConfig)
|
|
)
|
|
when MysqlDumpToDokkuMariadbDeployment then
|
|
DeploymentMariadb.new(
|
|
local.as(MysqlDumpLocalConfig),
|
|
remote,
|
|
deployment_config.as(DokkuMariadbDeploymentConfig)
|
|
)
|
|
when Nil
|
|
nil
|
|
end
|
|
|
|
next if deployment.nil?
|
|
deployment.run
|
|
end
|
|
end
|
|
|