# frozen_string_literal: true require_relative Rails.root.join('metrics_server', 'dependencies') require_relative Rails.root.join('metrics_server', 'metrics_server') namespace :gitlab do namespace :metrics_exporter do REPO = 'https://gitlab.com/gitlab-org/gitlab-metrics-exporter.git' desc "GitLab | Metrics Exporter | Install or upgrade gitlab-metrics-exporter" task :install, [:dir] => :gitlab_environment do |t, args| unless args.dir.present? abort %(Please specify the directory where you want to install the exporter Usage: rake "gitlab:metrics_exporter:install[/installation/dir]") end version = ENV['GITLAB_METRICS_EXPORTER_VERSION'] || MetricsServer.version make = Gitlab::Utils.which('gmake') || Gitlab::Utils.which('make') abort "Couldn't find a 'make' binary" unless make checkout_or_clone_version(version: version, repo: REPO, target_dir: args.dir, clone_opts: %w[--depth 1]) Dir.chdir(args.dir) { run_command!([make]) } end end end