Welcome to mirror list, hosted at ThFree Co, Russian Federation.

publish-gem « _support - gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f0a1b138e5892cc3ab3f168d01823428c7c669f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env ruby

require_relative 'run.rb'

def main(tag)
  version = tag.sub(/^v/, '')

  unless version.match?(/\d+\.\d+\.\d+(-rc\d+)?/)
    abort "Version string #{version.inspect} does not look like a Gitaly Release tag (e.g. \"v1.0.2\"). Aborting."
  end

  ref = capture!(%w[git describe --tag]).chomp
  if ref != "v#{version}"
    abort "Checkout tag v#{version} to publish.\n\t git checkout v#{version}"
  end

  puts 'Testing for changed files'
  run!(%w[git diff --quiet --exit-code])

  puts 'Testing for staged changes'
  run!(%w[git diff --quiet --cached --exit-code])

  gem = "gitaly-#{version}.gem"
  run!(['gem', 'build', 'gitaly.gemspec', '--output', gem])
  abort "gem not found: #{gem}" unless File.exist?(gem)

  puts "Proceed to publish version #{tag}? Enter 'Yes' to continue; Ctrl-C to abort"
  $stdout.flush
  abort unless $stdin.gets.chomp == 'Yes'

  run!(%W[gem push #{gem}])
end

unless ARGV.count == 1
  warn "Usage: #{$0} TAG"
  abort
end

main(ARGV[0])