Skip to content

Commit a0286c0

Browse files
authored
chore: Repurpose release task to release the gem
1 parent bbdc7de commit a0286c0

File tree

3 files changed

+57
-28
lines changed

3 files changed

+57
-28
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ group :development do
2323
gem 'logging', '~> 2.2'
2424
gem 'opencensus', '~> 0.4'
2525
gem 'httparty'
26+
gem 'gems', '~> 1.2'
2627
end
2728

2829
platforms :jruby do

Rakefile

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,28 @@ namespace :kokoro do
7979
end
8080

8181
task :release do
82-
# Until code generation process is updated and release-please is set up, just publish docs
83-
require_relative "rakelib/devsite/devsite_builder.rb"
82+
Rake::Task["kokoro:publish_gem"].invoke
83+
Rake::Task["kokoro:publish_docs"].invoke
84+
end
85+
86+
task :publish_gem do
87+
require "gems"
88+
89+
load_env_vars if ENV["KOKORO_GFILE_DIR"]
90+
api_token = ENV["RUBYGEMS_API_TOKEN"]
91+
if api_token
92+
::Gems.configure do |config|
93+
config.key = api_token
94+
end
95+
end
96+
97+
rm_rf "pkg"
98+
Rake::Task["build"].invoke
99+
built_gem_path = Dir.glob("pkg/google-api-client-*.gem").last
84100

85-
DevsiteBuilder.new.publish_if_missing ENV["DOCS_BUILD_TAG"]
101+
response = ::Gems.push File.new path_to_be_pushed
102+
puts response
103+
raise "Failed to release gem" unless response.include? "Successfully registered gem:"
86104
end
87105

88106
desc "Publish docs for the latest git tag"
@@ -93,6 +111,16 @@ namespace :kokoro do
93111
end
94112
end
95113

114+
def load_env_vars
115+
service_account = "#{ENV['KOKORO_GFILE_DIR']}/service-account.json"
116+
raise "#{service_account} is not a file" unless File.file? service_account
117+
ENV["GOOGLE_APPLICATION_CREDENTIALS"] = service_account
118+
filename = "#{ENV['KOKORO_GFILE_DIR']}/ruby_env_vars.json"
119+
raise "#{filename} is not a file" unless File.file? filename
120+
env_vars = JSON.parse File.read(filename)
121+
env_vars.each { |k, v| ENV[k] ||= v }
122+
end
123+
96124
def header str, token = "#"
97125
line_length = str.length + 8
98126
puts

google-api-client.gemspec

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,35 @@ lib = File.expand_path('../lib', __FILE__)
22
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
33
require 'google/apis/version'
44

5-
Gem::Specification.new do |spec|
6-
spec.name = 'google-api-client'
7-
spec.version = Google::Apis::VERSION
8-
spec.authors = ['Steven Bazyl', 'Tim Emiola', 'Sergio Gomes', 'Bob Aman']
9-
spec.email = ['[email protected]']
10-
spec.summary = 'Client for accessing Google APIs'
11-
spec.homepage = 'https://github.com/google/google-api-ruby-client'
12-
spec.license = 'Apache-2.0'
13-
spec.metadata = {
5+
Gem::Specification.new do |gem|
6+
gem.name = 'google-api-client'
7+
gem.version = Google::Apis::VERSION
8+
gem.authors = ['Steven Bazyl', 'Tim Emiola', 'Sergio Gomes', 'Bob Aman']
9+
gem.email = ['[email protected]']
10+
gem.summary = 'Client for accessing Google APIs'
11+
gem.homepage = 'https://github.com/google/google-api-ruby-client'
12+
gem.license = 'Apache-2.0'
13+
gem.metadata = {
1414
"documentation_uri" => "https://googleapis.dev/ruby/google-api-client/v#{Google::Apis::VERSION}"
1515
}
1616

17-
spec.files = `git ls-files -z`
18-
.split("\x0")
19-
.reject { |f| f.match(%r{^(spec|script)/|^api_names_out|synth\.metadata}) }
17+
gem.files = `git ls-files -z`
18+
.split("\x0")
19+
.reject { |f| f.match(%r{^(spec|script)/|^api_names_out|synth\.metadata}) }
2020

21-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22-
spec.require_paths = %w[lib generated]
21+
gem.executables = gem.files.grep(%r{^bin/}) { |f| File.basename(f) }
22+
gem.require_paths = %w[lib generated]
2323

24-
spec.required_ruby_version = '>= 2.4'
24+
gem.required_ruby_version = '>= 2.4'
2525

26-
spec.add_runtime_dependency 'representable', '~> 3.0'
27-
spec.add_runtime_dependency 'retriable', '>= 2.0', '< 4.0'
28-
spec.add_runtime_dependency 'addressable', '~> 2.5', '>= 2.5.1'
29-
spec.add_runtime_dependency 'mini_mime', '~> 1.0'
30-
spec.add_runtime_dependency 'signet', '~> 0.12'
31-
spec.add_runtime_dependency 'googleauth', '~> 0.9'
32-
spec.add_runtime_dependency 'httpclient', '>= 2.8.1', '< 3.0'
33-
spec.add_runtime_dependency 'rexml'
34-
spec.add_development_dependency 'thor', '~> 0.19'
35-
spec.add_development_dependency 'activesupport', '>= 4.2', '< 5.1'
26+
gem.add_runtime_dependency 'representable', '~> 3.0'
27+
gem.add_runtime_dependency 'retriable', '>= 2.0', '< 4.0'
28+
gem.add_runtime_dependency 'addressable', '~> 2.5', '>= 2.5.1'
29+
gem.add_runtime_dependency 'mini_mime', '~> 1.0'
30+
gem.add_runtime_dependency 'signet', '~> 0.12'
31+
gem.add_runtime_dependency 'googleauth', '~> 0.9'
32+
gem.add_runtime_dependency 'httpclient', '>= 2.8.1', '< 3.0'
33+
gem.add_runtime_dependency 'rexml'
34+
gem.add_development_dependency 'thor', '~> 0.19'
35+
gem.add_development_dependency 'activesupport', '>= 4.2', '< 5.1'
3636
end

0 commit comments

Comments
 (0)