class Physique::OctopusTasksBuilder

Public Instance Methods

build_tasks() click to toggle source
# File lib/physique/task_builders/octopus.rb, line 77
def build_tasks
  @options = solution.octopus
  return if @options.nil?
  return if @options.apps.blank?

  namespace :octo do
    add_octopus_package_tasks
    add_octopus_publish_tasks
  end

  if @options.alias_tasks
    add_task_aliases
  end
end

Private Instance Methods

add_octopus_package_tasks() click to toggle source
# File lib/physique/task_builders/octopus.rb, line 94
def add_octopus_package_tasks
  @options.apps.each do |a|
    namespace a.name do
      desc "Package #{a.project} for Octopus deployment"
      octopus_pack :package => [:versionizer, :test] do |o|
        ensure_output_location solution.nuget.build_location

        o.project_file = a.project_file
        o.type = a.type
        o.configuration = solution.compile.configuration
        o.exe = solution.nuget.exe
        o.out = solution.nuget.build_location
        o.metadata = a.metadata
      end
    end
  end

  desc 'Package all applications'
  task :package => all_octopus_app_tasks('package')
end
add_octopus_publish_tasks() click to toggle source
# File lib/physique/task_builders/octopus.rb, line 115
def add_octopus_publish_tasks
  nuget = solution.nuget

  @options.apps.each do |a|
    project = Albacore::Project.new a.project_file

    namespace a.name do
      desc "Publish #{a.project} app to Octopus Server"
      task :publish => [ "#{a.name}:package" ] do
        package_location = Albacore::Paths.normalise_slashes "#{nuget.build_location}/#{project.name}.#{a.metadata.version}.nupkg"
        sh "#{nuget.exe} push #{package_location} -ApiKey #{@options.api_key} -Source #{@options.server}"
      end
    end
  end

  desc 'Publish all apps to Octopus Server'
  task :publish => all_octopus_app_tasks('publish')
end
add_task_aliases() click to toggle source
# File lib/physique/task_builders/octopus.rb, line 138
def add_task_aliases
  desc 'Package all applications'
  task :package => [ 'octo:package' ]

  desc 'Publish apps to Octopus Server'
  task :publish => [ 'octo:publish' ]
end
all_octopus_app_tasks(task) click to toggle source
# File lib/physique/task_builders/octopus.rb, line 134
def all_octopus_app_tasks(task)
  @options.apps.map { |a| "#{a.name}:#{task}" }
end