-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathbump-and-publish-all-npm.rb
executable file
·56 lines (40 loc) · 1.38 KB
/
bump-and-publish-all-npm.rb
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/usr/bin/env ruby
class CommandFailedError < RuntimeError; end
require "json"
require "pry"
require "tretry"
def otp
ENV.fetch("OTP")
end
def bump_version(old_version)
old_version = old_version.split(".")
old_minor = old_version[old_version.length - 1].to_i
new_version = old_version.dup
new_version[old_version.length - 1] = old_minor + 1
new_version.join(".")
end
def wait_for_publish
puts "Waiting for publish"
sleep 7
puts "Done waiting"
end
def run_command_with_retry(command)
Tretry.try(errors: [CommandFailedError], wait: 2) do
system(command)
raise CommandFailedError, "Command failed" unless $?.success?
end
end
# BASE
api_maker_package = JSON.parse(File.read("npm-api-maker/package.json"))
api_maker_version = api_maker_package.fetch("version")
api_maker_new_version = bump_version(api_maker_version)
# DUMMY
dummy_package = JSON.parse(File.read("ruby-gem/spec/dummy/package.json"))
# dummy_version = table_package.fetch("version")
# dummy_new_version = bump_version(table_version)
dummy_package["dependencies"]["@kaspernj/api-maker"] = api_maker_new_version
File.write("ruby-gem/spec/dummy/package.json", JSON.pretty_generate(dummy_package))
# RELEASE NEW VERSIONS
#run_command_with_retry("cd npm-api-maker && yarn publish --new-version #{api_maker_new_version} --otp #{otp}")
#wait_for_publish
#run_command_with_retry("cd ruby-gem/spec/dummy && yarn")