Rakefile in sidekiq-prometheus-exporter-0.1.13 vs Rakefile in sidekiq-prometheus-exporter-0.1.14
- old
+ new
@@ -2,5 +2,78 @@
require 'rspec/core/rake_task'
RSpec::Core::RakeTask.new(:spec)
task default: :spec
+
+# ==============================================================================
+
+require 'English'
+require 'fileutils'
+require_relative 'lib/sidekiq/prometheus/exporter/version'
+
+def execute(command)
+ output = `#{command}`
+
+ unless $CHILD_STATUS.success?
+ warn output
+ exit 1
+ end
+
+ output
+end
+
+namespace :docker do
+ task :release do
+ Rake::Task['docker:build'].invoke
+ Rake::Task['docker:push'].invoke
+ end
+
+ task :build do
+ image = 'strech/sidekiq-prometheus-exporter'
+
+ Dir.chdir(File.expand_path('./docker')) do
+ execute("docker build -t #{image}:#{Sidekiq::Prometheus::Exporter::VERSION} -t #{image}:latest .")
+ end
+
+ puts "Successfully built strech/sidekiq-prometheus-exporter and tagged #{Sidekiq::Prometheus::Exporter::VERSION}, latest"
+ end
+
+ task :push do
+ image = 'strech/sidekiq-prometheus-exporter'
+
+ execute("docker push #{image}:#{Sidekiq::Prometheus::Exporter::VERSION}")
+ execute("docker push #{image}:latest")
+
+ puts "Successfully pushed strech/sidekiq-prometheus-exporter #{Sidekiq::Prometheus::Exporter::VERSION}, latest"
+ end
+end
+
+namespace :helm do
+ desc 'Generate new Helm repo index'
+ task :generate do
+ archive_dir = File.expand_path("./tmp/archive-#{Time.now.to_i}")
+
+ Rake::Task['helm:package'].invoke(archive_dir)
+ Rake::Task['helm:index'].invoke(archive_dir)
+
+ puts "New index generated: #{File.join(archive_dir, 'index.yaml')}"
+ end
+
+ task :package, [:directory] do |_, args|
+ chart_dir = File.expand_path('./helm/sidekiq-prometheus-exporter')
+ archive_dir = args.fetch(:directory) { File.expand_path("./tmp/archive-#{Time.now.to_i}") }
+
+ FileUtils.mkdir_p(archive_dir)
+
+ execute("helm package #{chart_dir} -d #{archive_dir}")
+ end
+
+ task :index, [:directory] do |_, args|
+ Dir.chdir(args.fetch(:directory)) do
+ url = "https://github.com/Strech/sidekiq-prometheus-exporter/releases/download/v#{Sidekiq::Prometheus::Exporter::VERSION}"
+
+ execute('git show gh-pages:index.yaml > existing-index.yaml')
+ execute("helm repo index . --url #{url} --merge existing-index.yaml")
+ end
+ end
+end