lib/conjur/debify/action/publish.rb in conjur-debify-3.0.3.pre.216 vs lib/conjur/debify/action/publish.rb in conjur-debify-3.0.3.pre.1914
- old
+ new
@@ -1,19 +1,19 @@
module Conjur::Debify
module Action
class Publish
+
def detect_component
branch = ENV['GIT_BRANCH'] || ENV['BRANCH_NAME'] || `git rev-parse --abbrev-ref HEAD`.strip
- if %w[master origin/master].include?(branch)
+ if %w(master origin/master).include?(branch)
'stable'
else
branch.gsub('/', '.')
end
end
attr_reader :distribution, :project_name, :cmd_options
-
def initialize(distribution, project_name, cmd_options)
@distribution = distribution
@project_name = project_name
@cmd_options = cmd_options
end
@@ -32,75 +32,60 @@
art_url = cmd_options[:url]
deb_art_repo = cmd_options[:repo]
art_user = ENV['ARTIFACTORY_USER']
art_password = ENV['ARTIFACTORY_PASSWORD']
- art_user, art_password = fetch_art_creds unless art_user && art_password
+ unless art_user && art_password
+ art_user, art_password = fetch_art_creds
+ end
- # Publish AMD64 deb package
+ # Publish deb package
component = cmd_options[:component] || detect_component
deb_info = "#{distribution}/#{component}/amd64"
package_name = "conjur-#{project_name}_#{version}_amd64.deb"
publish_package(
- publish_image:,
- art_url:,
- art_user:,
- art_password:,
+ publish_image: publish_image,
+ art_url: art_url,
+ art_user: art_user,
+ art_password: art_password,
art_repo: deb_art_repo,
- package_name:,
- dir:,
- deb_info:
+ package_name: package_name,
+ dir: dir,
+ deb_info: deb_info
)
- # (Optional) Publish ARM64 deb package
- unless Dir.glob('*_arm64.deb').empty?
- deb_info = "#{distribution}/#{component}/arm64"
- package_name = "conjur-#{project_name}_#{version}_arm64.deb"
- publish_package(
- publish_image:,
- art_url:,
- art_user:,
- art_password:,
- art_repo: deb_art_repo,
- package_name:,
- dir:,
- deb_info:
- )
- end
-
# Publish RPM package
# The rpm builder replaces dashes with underscores in the version
rpm_version = version.tr('-', '_')
- package_name = "conjur-#{project_name}-#{rpm_version}-1.*.rpm"
+ package_name = "conjur-#{project_name}-#{rpm_version}-1.x86_64.rpm"
rpm_art_repo = cmd_options['rpm-repo']
publish_package(
- publish_image:,
- art_url:,
- art_user:,
- art_password:,
+ publish_image: publish_image,
+ art_url: art_url,
+ art_user: art_user,
+ art_password: art_password,
art_repo: rpm_art_repo,
- package_name:,
- dir:
+ package_name: package_name,
+ dir: dir
)
end
end
def create_image
- Docker::Image.build_from_dir File.expand_path('../../publish', File.dirname(__FILE__)), tag: 'debify-publish',
- &DebugMixin::DOCKER
+ Docker::Image.build_from_dir File.expand_path('../../publish', File.dirname(__FILE__)), tag: "debify-publish", &DebugMixin::DOCKER
end
def fetch_art_creds
require 'conjur/cli'
require 'conjur/authn'
Conjur::Config.load
Conjur::Config.apply
conjur = Conjur::Authn.connect nil, noask: true
account = Conjur.configuration.account
- username_var = [account, 'variable', 'ci/artifactory/users/jenkins/username'].join(':')
- password_var = [account, 'variable', 'ci/artifactory/users/jenkins/password'].join(':')
+ username_var = [account, "variable", "ci/artifactory/users/jenkins/username"].join(':')
+ password_var = [account, "variable", 'ci/artifactory/users/jenkins/password'].join(':')
[conjur.resource(username_var).value, conjur.resource(password_var).value]
end
def publish_package(
publish_image:,
@@ -112,44 +97,40 @@
dir:,
deb_info: nil
)
cmd_args = [
- 'jfrog', 'rt', 'upload',
- '--url', art_url,
- '--user', art_user,
- '--password', art_password
+ "jfrog", "rt", "upload",
+ "--url", art_url,
+ "--user", art_user,
+ "--password", art_password,
]
- cmd_args += ['--deb', deb_info] if deb_info
+ cmd_args += ["--deb", deb_info] if deb_info
cmd_args += [package_name, "#{art_repo}/"]
options = {
'Image' => publish_image.id,
'Cmd' => cmd_args,
- 'HostConfig' => {
- 'Binds' => [
- [dir, '/src'].join(':')
- ]
- },
- 'WorkingDir' => '/src'
+ 'Binds' => [
+ [ dir, "/src" ].join(':')
+ ]
}
options['Privileged'] = true if Docker.version['Version'] >= '1.10.0'
publish(options)
end
def publish(options)
container = Docker::Container.create(options)
begin
- container.tap(&:start!).streaming_logs(follow: true, stdout: true, stderr: true) do |_stream, chunk|
- puts "#{chunk}"
- end
+ container.tap(&:start!).streaming_logs(follow: true, stdout: true, stderr: true) { |stream, chunk| puts "#{chunk}" }
status = container.wait
- raise 'Failed to publish package' unless status['StatusCode'] == 0
+ raise "Failed to publish package" unless status['StatusCode'] == 0
ensure
container.delete(force: true)
end
end
+
end
end
end