Skip to content

Commit 78c2f35

Browse files
committed
add build config path
1 parent d44f923 commit 78c2f35

File tree

5 files changed

+27
-17
lines changed

5 files changed

+27
-17
lines changed

exe/omnipackage

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ subcommands = {
6666
k, v = v.split('=')
6767
options[:secrets][k] = v
6868
end
69+
opts.on('-b', '--build-config BUILD_CONFIG_PATH', "override default path to .omnipackage/config.yml") do |v|
70+
options[:build_config_path] = build_config_path
71+
end
6972
end,
7073

7174
'portal' => ::OptionParser.new do |opts|
@@ -116,7 +119,11 @@ begin
116119
logger = ::OmnipackageAgent::Logging::Logger.new
117120
secrets = ::OmnipackageAgent::Build::Secrets.deserialize(options[:secrets])
118121
rest.each do |path|
119-
result = ::OmnipackageAgent::Build.new(logger: logger, config: config, secrets: secrets).call(path, distros: options[:distros])
122+
result = ::OmnipackageAgent::Build.new(
123+
logger: logger,
124+
config: config,
125+
secrets: secrets
126+
).call(path, distros: options[:distros], build_config_path: options[:build_config_path])
120127
print_result(path, result)
121128
end
122129
when 'init'

lib/omnipackage_agent/api/scheduler.rb

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,16 @@ def call(payload) # rubocop: disable Metrics/MethodLength, Metrics/AbcSize
2222
case # rubocop: disable Style/EmptyCaseCondition
2323
when state.idle? && payload['command'] == 'start'
2424
task = ::OmnipackageAgent::Api::Task.new(
25-
id: payload.fetch('task').fetch('id'),
26-
tarball_url: payload.fetch('task').fetch('sources_tarball_url'),
27-
upload_url: payload.fetch('task').fetch('upload_artefact_url'),
28-
distros: payload.fetch('task').fetch('distros'),
29-
limits: ::OmnipackageAgent::Build::Limits.deserialize(payload.fetch('task')['limits']),
30-
secrets: ::OmnipackageAgent::Build::Secrets.deserialize(payload.fetch('task')['secrets']),
31-
downloader: downloader,
32-
logger: logger,
33-
config: config
25+
id: payload.fetch('task').fetch('id'),
26+
tarball_url: payload.fetch('task').fetch('sources_tarball_url'),
27+
upload_url: payload.fetch('task').fetch('upload_artefact_url'),
28+
distros: payload.fetch('task').fetch('distros'),
29+
build_config_path: payload.fetch('task').fetch('build_config_path', nil),
30+
limits: ::OmnipackageAgent::Build::Limits.deserialize(payload.fetch('task')['limits']),
31+
secrets: ::OmnipackageAgent::Build::Secrets.deserialize(payload.fetch('task')['secrets']),
32+
downloader: downloader,
33+
logger: logger,
34+
config: config
3435
)
3536
start!(task)
3637
when state.busy? && payload['command'] == 'stop'

lib/omnipackage_agent/api/task.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
module OmnipackageAgent
1010
module Api
1111
class Task
12-
attr_reader :id, :tarball_url, :upload_url, :distros, :downloader, :build_outputs, :exception, :logger, :config, :limits, :secrets
12+
attr_reader :id, :tarball_url, :upload_url, :distros, :downloader, :build_outputs, :exception, :logger, :config, :limits, :secrets, :build_config_path
1313

14-
def initialize(id:, tarball_url:, upload_url:, distros:, downloader:, logger:, config:, limits:, secrets:) # rubocop: disable Metrics/ParameterLists, Metrics/MethodLength
14+
def initialize(id:, tarball_url:, upload_url:, distros:, downloader:, logger:, config:, limits:, secrets:, build_config_path:) # rubocop: disable Metrics/ParameterLists, Metrics/MethodLength
1515
@id = id
1616
@distros = distros
1717
@tarball_url = tarball_url
@@ -23,6 +23,7 @@ def initialize(id:, tarball_url:, upload_url:, distros:, downloader:, logger:, c
2323
@terminator = ::OmnipackageAgent::Utils::Terminator.new
2424
@limits = limits
2525
@secrets = secrets
26+
@build_config_path = build_config_path
2627
end
2728

2829
def start(&block) # rubocop: disable Metrics/MethodLength, Metrics/AbcSize
@@ -37,7 +38,7 @@ def start(&block) # rubocop: disable Metrics/MethodLength, Metrics/AbcSize
3738
terminator: terminator,
3839
limits: limits,
3940
secrets: secrets
40-
).call(sources_dir, distros: distros)
41+
).call(sources_dir, distros: distros, build_config_path: build_config_path)
4142
upload_artefacts unless terminator.called?
4243
rescue ::StandardError => e
4344
@exception = e

lib/omnipackage_agent/build.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ def initialize(config:, logger:, limits: nil, terminator: nil, secrets: nil)
2020
@secrets = secrets || ::OmnipackageAgent::Build::Secrets.new
2121
end
2222

23-
def call(source_path, distros: nil)
24-
build_config = ::OmnipackageAgent::Build::Config.new(source_path)
23+
def call(source_path, distros: nil, build_config_path: nil)
24+
build_config = ::OmnipackageAgent::Build::Config.new(source_path, build_config_path: build_config_path)
2525

2626
job_variables = {
2727
version: ::OmnipackageAgent::Build::ExtractVersion.new(build_config, source_path).call,

lib/omnipackage_agent/build/config.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@ class Build
88
module Config
99
extend self
1010

11-
def new(source_path)
12-
fpath = ::OmnipackageAgent::Utils::Path.mkpath(source_path, '.omnipackage', 'config.yml')
11+
def new(source_path, build_config_path: nil)
12+
build_config_path ||= '.omnipackage/config.yml'
13+
fpath = ::OmnipackageAgent::Utils::Path.mkpath(source_path, build_config_path)
1314
::OmnipackageAgent::Yaml.load_file(fpath, symbolize_names: true)
1415
end
1516
end

0 commit comments

Comments
 (0)