green_day 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/bump_version_and_push_to_rubygems.yml +54 -0
- data/.github/workflows/ruby.yml +2 -3
- data/Gemfile +10 -0
- data/green_day.gemspec +1 -12
- data/lib/green_day/atcoder_client.rb +17 -10
- data/lib/green_day/cli.rb +17 -19
- data/lib/green_day/contest.rb +11 -12
- data/lib/green_day/task.rb +2 -8
- data/lib/green_day/version.rb +1 -1
- metadata +5 -159
- data/.github/workflows/publish_to_rubygems.yml +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 971ee30b1f0c5e28050c22c9dad43ec540df4b62a8c98732cc087bd6073264ce
|
4
|
+
data.tar.gz: b466d89cbb1b7bf4b80bd4b6e6376c62b6bfab1582e0dacea346ceddd43e4996
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89fbaca8563074011b950df0241164a97e0fbb0659126b00cc5a7a04a6cd4169dd0a63ece3d4d245aa19ccbb71421b2841d733bb209e893af48f3c22aeb4db3e
|
7
|
+
data.tar.gz: 02bcd53c57dd6c4d73e8871e0943cd494fe700b77ce61603d752f4f2ec4a97653288c9f9e03e4c9d91766d67d399a1647900ccd2ddd7a752d245310151057db4
|
@@ -0,0 +1,54 @@
|
|
1
|
+
name: Bump version and Push to RubyGems
|
2
|
+
|
3
|
+
on:
|
4
|
+
workflow_dispatch:
|
5
|
+
inputs:
|
6
|
+
miner-or-major:
|
7
|
+
description: 'Minor or major release'
|
8
|
+
required: true
|
9
|
+
default: 'minor'
|
10
|
+
options:
|
11
|
+
- 'minor'
|
12
|
+
- 'major'
|
13
|
+
email:
|
14
|
+
description: Your email
|
15
|
+
required: true
|
16
|
+
type: string
|
17
|
+
|
18
|
+
|
19
|
+
jobs:
|
20
|
+
build:
|
21
|
+
name: Build + Publish
|
22
|
+
runs-on: ubuntu-latest
|
23
|
+
permissions:
|
24
|
+
packages: write
|
25
|
+
contents: read
|
26
|
+
|
27
|
+
steps:
|
28
|
+
- uses: actions/checkout@v3
|
29
|
+
- name: Set up Ruby 3.2
|
30
|
+
uses: ruby/setup-ruby@v1
|
31
|
+
with:
|
32
|
+
ruby-version: 3.2
|
33
|
+
|
34
|
+
- run: bundle install
|
35
|
+
- run: gem install gem-release
|
36
|
+
|
37
|
+
- name: config
|
38
|
+
run: |
|
39
|
+
git config --global user.email ${{ github.event.inputs.email }}
|
40
|
+
git config --global user.name ${{ github.actor }}
|
41
|
+
|
42
|
+
- name: Bump version
|
43
|
+
run: gem bump --version ${{ github.event.inputs.miner-or-major }}
|
44
|
+
|
45
|
+
- name: Publish to RubyGems
|
46
|
+
run: |
|
47
|
+
mkdir -p $HOME/.gem
|
48
|
+
touch $HOME/.gem/credentials
|
49
|
+
chmod 0600 $HOME/.gem/credentials
|
50
|
+
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
51
|
+
gem build *.gemspec
|
52
|
+
gem push *.gem
|
53
|
+
env:
|
54
|
+
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|
data/.github/workflows/ruby.yml
CHANGED
@@ -11,8 +11,7 @@ jobs:
|
|
11
11
|
strategy:
|
12
12
|
matrix:
|
13
13
|
ruby-version:
|
14
|
-
- 2.
|
15
|
-
- 3.1
|
14
|
+
- 3.2.1 # Atcoderが採用しているバージョン
|
16
15
|
steps:
|
17
16
|
- uses: actions/checkout@v3
|
18
17
|
- name: Set up Ruby ${{ matrix.ruby-version }}
|
@@ -33,7 +32,7 @@ jobs:
|
|
33
32
|
- uses: actions/checkout@v3
|
34
33
|
- uses: ruby/setup-ruby@v1
|
35
34
|
with:
|
36
|
-
ruby-version: 3.1
|
35
|
+
ruby-version: 3.2.1
|
37
36
|
- name: Bundle install
|
38
37
|
run: bundle install
|
39
38
|
- name: Run rubocop
|
data/Gemfile
CHANGED
@@ -4,3 +4,13 @@ source 'https://rubygems.org'
|
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in green_day.gemspec
|
6
6
|
gemspec
|
7
|
+
|
8
|
+
gem 'bundler', '~> 2.0'
|
9
|
+
gem 'codecov'
|
10
|
+
gem 'dotenv'
|
11
|
+
gem 'rake', '>= 12.3.3'
|
12
|
+
gem 'rspec', '~> 3.0'
|
13
|
+
gem 'rubocop'
|
14
|
+
gem 'rubocop-rake'
|
15
|
+
gem 'rubocop-rspec'
|
16
|
+
gem 'vcr'
|
data/green_day.gemspec
CHANGED
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
5
5
|
require 'green_day/version'
|
6
6
|
|
7
7
|
Gem::Specification.new do |spec|
|
8
|
-
spec.required_ruby_version = '>= 2.
|
8
|
+
spec.required_ruby_version = '>= 3.2.1'
|
9
9
|
spec.name = 'green_day'
|
10
10
|
spec.executables = ['green_day']
|
11
11
|
spec.version = GreenDay::VERSION
|
@@ -30,17 +30,6 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency 'faraday'
|
31
31
|
spec.add_dependency 'faraday-cookie_jar'
|
32
32
|
spec.add_dependency 'nokogiri'
|
33
|
-
spec.add_dependency 'parallel'
|
34
33
|
spec.add_dependency 'thor'
|
35
|
-
spec.add_dependency 'webrick'
|
36
|
-
spec.add_development_dependency 'bundler', '~> 2.0'
|
37
|
-
spec.add_development_dependency 'codecov'
|
38
|
-
spec.add_development_dependency 'dotenv'
|
39
|
-
spec.add_development_dependency 'rake', '>= 12.3.3'
|
40
|
-
spec.add_development_dependency 'rspec', '~> 3.0'
|
41
|
-
spec.add_development_dependency 'rubocop'
|
42
|
-
spec.add_development_dependency 'rubocop-rake'
|
43
|
-
spec.add_development_dependency 'rubocop-rspec'
|
44
|
-
spec.add_development_dependency 'vcr'
|
45
34
|
spec.metadata['rubygems_mfa_required'] = 'true'
|
46
35
|
end
|
@@ -2,18 +2,25 @@
|
|
2
2
|
|
3
3
|
require 'faraday'
|
4
4
|
require 'faraday-cookie_jar'
|
5
|
-
require 'webrick/cookie'
|
6
5
|
require 'nokogiri'
|
7
6
|
|
8
7
|
module GreenDay
|
9
8
|
class AtcoderClient
|
10
9
|
ATCODER_ENDPOINT = 'https://atcoder.jp'
|
11
10
|
COOKIE_FILE_NAME = '.cookie-store'
|
12
|
-
attr_reader :
|
11
|
+
attr_reader :conn, :cookie_jar
|
12
|
+
|
13
|
+
def self.login(username, password)
|
14
|
+
new.login(username, password)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get_parsed_body(path)
|
18
|
+
new.get_parsed_body(path)
|
19
|
+
end
|
13
20
|
|
14
21
|
def initialize
|
15
22
|
@cookie_jar = create_or_load_cookie_jar
|
16
|
-
@
|
23
|
+
@conn = Faraday.new(url: ATCODER_ENDPOINT) do |builder|
|
17
24
|
builder.use :cookie_jar, jar: cookie_jar
|
18
25
|
builder.request :url_encoded
|
19
26
|
builder.adapter :net_http
|
@@ -21,17 +28,17 @@ module GreenDay
|
|
21
28
|
end
|
22
29
|
|
23
30
|
def get_parsed_body(path)
|
24
|
-
res =
|
31
|
+
res = conn.get(path)
|
25
32
|
Nokogiri::HTML.parse(res.body)
|
26
33
|
end
|
27
34
|
|
28
35
|
def login(username, password)
|
29
36
|
csrf_token = obtain_atcoder_csrf_token
|
30
37
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
38
|
+
conn.post('/login',
|
39
|
+
username:,
|
40
|
+
password:,
|
41
|
+
csrf_token:)
|
35
42
|
|
36
43
|
unless login_succeed?
|
37
44
|
## ex error:Username or Password is incorrect
|
@@ -56,11 +63,11 @@ module GreenDay
|
|
56
63
|
end
|
57
64
|
|
58
65
|
def obtain_atcoder_csrf_token
|
59
|
-
get_login_response =
|
66
|
+
get_login_response = conn.get('/login')
|
60
67
|
login_html = Nokogiri::HTML.parse(get_login_response.body)
|
61
68
|
login_html.at('input[name="csrf_token"]')['value']
|
62
69
|
rescue StandardError
|
63
|
-
raise Error, '
|
70
|
+
raise Error, 'can not get_csrf_token'
|
64
71
|
end
|
65
72
|
|
66
73
|
def login_succeed?
|
data/lib/green_day/cli.rb
CHANGED
@@ -17,7 +17,7 @@ module GreenDay
|
|
17
17
|
print 'password:'
|
18
18
|
password = $stdin.noecho { |stdin| stdin.gets(chomp: true) }.tap { puts }
|
19
19
|
|
20
|
-
AtcoderClient.
|
20
|
+
AtcoderClient.login(username, password)
|
21
21
|
puts(
|
22
22
|
"Successfully created #{AtcoderClient::COOKIE_FILE_NAME}"
|
23
23
|
.colorize(:green)
|
@@ -26,38 +26,36 @@ module GreenDay
|
|
26
26
|
|
27
27
|
desc 'new [contest name]', 'create contest workspace and spec'
|
28
28
|
def new(contest_name)
|
29
|
-
contest = Contest.new(contest_name
|
29
|
+
contest = Contest.new(contest_name)
|
30
30
|
FileUtils.makedirs("#{contest.name}/spec")
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
end
|
32
|
+
contest.tasks.map do |task|
|
33
|
+
create_files_in_thread(task)
|
34
|
+
end.each(&:join)
|
36
35
|
|
37
36
|
puts "Successfully created #{contest.name} directory".colorize(:green)
|
38
37
|
end
|
39
38
|
|
40
39
|
private
|
41
40
|
|
42
|
-
def
|
43
|
-
|
41
|
+
def create_files_in_thread(task)
|
42
|
+
Thread.new do
|
43
|
+
create_task_file(task)
|
44
|
+
create_task_spec_file(task)
|
45
|
+
end
|
44
46
|
end
|
45
47
|
|
46
|
-
def
|
47
|
-
|
48
|
-
TestBuilder.build_test(
|
49
|
-
submit_file_path(task),
|
50
|
-
task.sample_answers
|
51
|
-
)
|
52
|
-
File.write(spec_file_path(task), test)
|
48
|
+
def create_task_file(task)
|
49
|
+
FileUtils.touch(task_file_name(task))
|
53
50
|
end
|
54
51
|
|
55
|
-
def
|
56
|
-
|
52
|
+
def create_task_spec_file(task)
|
53
|
+
test_content = TestBuilder.build_test(task_file_name(task), task.sample_answers)
|
54
|
+
File.write("#{task.contest.name}/spec/#{task.name}_spec.rb", test_content)
|
57
55
|
end
|
58
56
|
|
59
|
-
def
|
60
|
-
"#{task.contest.name}
|
57
|
+
def task_file_name(task)
|
58
|
+
"#{task.contest.name}/#{task.name}.rb"
|
61
59
|
end
|
62
60
|
end
|
63
61
|
end
|
data/lib/green_day/contest.rb
CHANGED
@@ -1,31 +1,30 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'forwardable'
|
4
3
|
require_relative 'task'
|
5
4
|
|
6
5
|
module GreenDay
|
7
6
|
class Contest
|
8
|
-
extend Forwardable
|
9
|
-
delegate get_parsed_body: :@client
|
10
|
-
|
11
7
|
attr_reader :name, :tasks
|
12
8
|
|
13
|
-
def initialize(contest_name
|
14
|
-
@client = client
|
9
|
+
def initialize(contest_name)
|
15
10
|
@name = contest_name
|
16
11
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
@tasks = fetch_task_names_and_paths.map.with_index do |(task_name, task_path), i|
|
13
|
+
if !i.zero? && (i % 10).zero? && !ENV['CI']
|
14
|
+
puts 'Sleeping 2 second to avoid 429 error'
|
15
|
+
sleep 2
|
16
|
+
end
|
17
|
+
|
18
|
+
Thread.new do
|
19
|
+
Task.new(self, task_name, task_path)
|
22
20
|
end
|
21
|
+
end.map(&:value)
|
23
22
|
end
|
24
23
|
|
25
24
|
private
|
26
25
|
|
27
26
|
def fetch_task_names_and_paths
|
28
|
-
body = get_parsed_body("contests/#{name}/tasks")
|
27
|
+
body = AtcoderClient.get_parsed_body("contests/#{name}/tasks")
|
29
28
|
task_elements = body.search('tbody tr td:first a')
|
30
29
|
|
31
30
|
task_elements.to_h do |element|
|
data/lib/green_day/task.rb
CHANGED
@@ -1,16 +1,10 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'forwardable'
|
4
|
-
|
5
3
|
module GreenDay
|
6
4
|
class Task
|
7
|
-
extend Forwardable
|
8
|
-
delegate get_parsed_body: :@client
|
9
|
-
|
10
5
|
attr_reader :contest, :name, :path, :sample_answers
|
11
6
|
|
12
|
-
def initialize(contest, name, path
|
13
|
-
@client = client
|
7
|
+
def initialize(contest, name, path)
|
14
8
|
@contest = contest
|
15
9
|
@name = name
|
16
10
|
@path = path
|
@@ -26,7 +20,7 @@ module GreenDay
|
|
26
20
|
end
|
27
21
|
|
28
22
|
def fetch_inputs_and_outputs
|
29
|
-
body = get_parsed_body(path)
|
23
|
+
body = AtcoderClient.get_parsed_body(path)
|
30
24
|
samples = body.css('.lang-ja > .part > section > pre').map { |e| e.children.text }
|
31
25
|
|
32
26
|
inputs, outputs = samples.partition.with_index { |_sample, i| i.even? }
|
data/lib/green_day/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: green_day
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- qwyng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-09-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: parallel
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: thor
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,146 +80,6 @@ dependencies:
|
|
94
80
|
- - ">="
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: webrick
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ">="
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ">="
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: bundler
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "~>"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '2.0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "~>"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '2.0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: codecov
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :development
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: dotenv
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ">="
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :development
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ">="
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
|
-
- !ruby/object:Gem::Dependency
|
154
|
-
name: rake
|
155
|
-
requirement: !ruby/object:Gem::Requirement
|
156
|
-
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 12.3.3
|
160
|
-
type: :development
|
161
|
-
prerelease: false
|
162
|
-
version_requirements: !ruby/object:Gem::Requirement
|
163
|
-
requirements:
|
164
|
-
- - ">="
|
165
|
-
- !ruby/object:Gem::Version
|
166
|
-
version: 12.3.3
|
167
|
-
- !ruby/object:Gem::Dependency
|
168
|
-
name: rspec
|
169
|
-
requirement: !ruby/object:Gem::Requirement
|
170
|
-
requirements:
|
171
|
-
- - "~>"
|
172
|
-
- !ruby/object:Gem::Version
|
173
|
-
version: '3.0'
|
174
|
-
type: :development
|
175
|
-
prerelease: false
|
176
|
-
version_requirements: !ruby/object:Gem::Requirement
|
177
|
-
requirements:
|
178
|
-
- - "~>"
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
version: '3.0'
|
181
|
-
- !ruby/object:Gem::Dependency
|
182
|
-
name: rubocop
|
183
|
-
requirement: !ruby/object:Gem::Requirement
|
184
|
-
requirements:
|
185
|
-
- - ">="
|
186
|
-
- !ruby/object:Gem::Version
|
187
|
-
version: '0'
|
188
|
-
type: :development
|
189
|
-
prerelease: false
|
190
|
-
version_requirements: !ruby/object:Gem::Requirement
|
191
|
-
requirements:
|
192
|
-
- - ">="
|
193
|
-
- !ruby/object:Gem::Version
|
194
|
-
version: '0'
|
195
|
-
- !ruby/object:Gem::Dependency
|
196
|
-
name: rubocop-rake
|
197
|
-
requirement: !ruby/object:Gem::Requirement
|
198
|
-
requirements:
|
199
|
-
- - ">="
|
200
|
-
- !ruby/object:Gem::Version
|
201
|
-
version: '0'
|
202
|
-
type: :development
|
203
|
-
prerelease: false
|
204
|
-
version_requirements: !ruby/object:Gem::Requirement
|
205
|
-
requirements:
|
206
|
-
- - ">="
|
207
|
-
- !ruby/object:Gem::Version
|
208
|
-
version: '0'
|
209
|
-
- !ruby/object:Gem::Dependency
|
210
|
-
name: rubocop-rspec
|
211
|
-
requirement: !ruby/object:Gem::Requirement
|
212
|
-
requirements:
|
213
|
-
- - ">="
|
214
|
-
- !ruby/object:Gem::Version
|
215
|
-
version: '0'
|
216
|
-
type: :development
|
217
|
-
prerelease: false
|
218
|
-
version_requirements: !ruby/object:Gem::Requirement
|
219
|
-
requirements:
|
220
|
-
- - ">="
|
221
|
-
- !ruby/object:Gem::Version
|
222
|
-
version: '0'
|
223
|
-
- !ruby/object:Gem::Dependency
|
224
|
-
name: vcr
|
225
|
-
requirement: !ruby/object:Gem::Requirement
|
226
|
-
requirements:
|
227
|
-
- - ">="
|
228
|
-
- !ruby/object:Gem::Version
|
229
|
-
version: '0'
|
230
|
-
type: :development
|
231
|
-
prerelease: false
|
232
|
-
version_requirements: !ruby/object:Gem::Requirement
|
233
|
-
requirements:
|
234
|
-
- - ">="
|
235
|
-
- !ruby/object:Gem::Version
|
236
|
-
version: '0'
|
237
83
|
description: CLI tool for AtCoder and Ruby
|
238
84
|
email:
|
239
85
|
- ikusawasi@gmail.com
|
@@ -242,7 +88,7 @@ executables:
|
|
242
88
|
extensions: []
|
243
89
|
extra_rdoc_files: []
|
244
90
|
files:
|
245
|
-
- ".github/workflows/
|
91
|
+
- ".github/workflows/bump_version_and_push_to_rubygems.yml"
|
246
92
|
- ".github/workflows/ruby.yml"
|
247
93
|
- ".gitignore"
|
248
94
|
- ".rspec"
|
@@ -278,14 +124,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
278
124
|
requirements:
|
279
125
|
- - ">="
|
280
126
|
- !ruby/object:Gem::Version
|
281
|
-
version: 2.
|
127
|
+
version: 3.2.1
|
282
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
129
|
requirements:
|
284
130
|
- - ">="
|
285
131
|
- !ruby/object:Gem::Version
|
286
132
|
version: '0'
|
287
133
|
requirements: []
|
288
|
-
rubygems_version: 3.
|
134
|
+
rubygems_version: 3.4.10
|
289
135
|
signing_key:
|
290
136
|
specification_version: 4
|
291
137
|
summary: CLI tool for AtCoder and Ruby
|
@@ -1,31 +0,0 @@
|
|
1
|
-
name: Publish to RubyGems
|
2
|
-
|
3
|
-
on:
|
4
|
-
workflow_dispatch:
|
5
|
-
|
6
|
-
jobs:
|
7
|
-
build:
|
8
|
-
name: Build + Publish
|
9
|
-
runs-on: ubuntu-latest
|
10
|
-
permissions:
|
11
|
-
packages: write
|
12
|
-
contents: read
|
13
|
-
|
14
|
-
steps:
|
15
|
-
- uses: actions/checkout@v3
|
16
|
-
- name: Set up Ruby 3.1
|
17
|
-
uses: ruby/setup-ruby@v1
|
18
|
-
with:
|
19
|
-
ruby-version: 3.1
|
20
|
-
- run: bundle install
|
21
|
-
|
22
|
-
- name: Publish to RubyGems
|
23
|
-
run: |
|
24
|
-
mkdir -p $HOME/.gem
|
25
|
-
touch $HOME/.gem/credentials
|
26
|
-
chmod 0600 $HOME/.gem/credentials
|
27
|
-
printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials
|
28
|
-
gem build *.gemspec
|
29
|
-
gem push *.gem
|
30
|
-
env:
|
31
|
-
GEM_HOST_API_KEY: "${{secrets.RUBYGEMS_AUTH_TOKEN}}"
|