rubocop-isucon 0.2.0 → 1.0.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/dependabot.yml +10 -0
- data/.github/workflows/pages.yml +68 -0
- data/.github/workflows/test.yml +3 -7
- data/.rubocop.yml +5 -1
- data/CHANGELOG.md +10 -4
- data/README.md +7 -0
- data/config/default.yml +2 -2
- data/gemfiles/activerecord_7_1.gemfile +14 -0
- data/lib/rubocop/cop/isucon/correctors/n_plus_one_query_corrector.rb +1 -1
- data/lib/rubocop/cop/isucon/mixin/select_asterisk_methods.rb +1 -1
- data/lib/rubocop/cop/isucon/mysql2/n_plus_one_query.rb +1 -1
- data/lib/rubocop/cop/isucon/mysql2/where_without_index.rb +2 -2
- data/lib/rubocop/cop/isucon/shell/backtick.rb +7 -0
- data/lib/rubocop/cop/isucon/sqlite3/n_plus_one_query.rb +1 -1
- data/lib/rubocop/cop/isucon/sqlite3/where_without_index.rb +2 -2
- data/lib/rubocop/isucon/gda/client.rb +1 -1
- data/lib/rubocop/isucon/gda/join_operand.rb +1 -1
- data/lib/rubocop/isucon/version.rb +1 -1
- data/rubocop-isucon.gemspec +3 -2
- metadata +23 -7
- data/.github/workflows/gh-pages.yml +0 -44
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6bd0eac249a23368414a86aa1ab08826542cf644fa50b19017a2bcfd6648d594
|
|
4
|
+
data.tar.gz: 18e829ac97ac7c7cb9696a1078f36b8a958fd340ddbb9bc1b232b2630e683df2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 58238a855da0596f653d47436977b44cc7722982a1b59e60850f79003b356d85071cba061cca6adae2b4cfa4b63ab489e121135e3c2954f366f5ca1c375e1bbf
|
|
7
|
+
data.tar.gz: b7747989e1219c7fee4f834b8811e419d3c9f6083336d5fab7e7b19a3f8e1f0dad86644e708b18b926b9de3a678edf8b31495097e319bff970599b80d0ab21d9
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# c.f. https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
|
|
2
|
+
version: 2
|
|
3
|
+
|
|
4
|
+
updates:
|
|
5
|
+
- package-ecosystem: github-actions
|
|
6
|
+
directory: /
|
|
7
|
+
schedule:
|
|
8
|
+
interval: weekly
|
|
9
|
+
assignees:
|
|
10
|
+
- sue445
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Simple workflow for deploying static content to GitHub Pages
|
|
2
|
+
name: Deploy static content to Pages
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
# Runs on pushes targeting the default branch
|
|
6
|
+
push:
|
|
7
|
+
branches:
|
|
8
|
+
- main
|
|
9
|
+
|
|
10
|
+
# Allows you to run this workflow manually from the Actions tab
|
|
11
|
+
workflow_dispatch:
|
|
12
|
+
|
|
13
|
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
pages: write
|
|
17
|
+
id-token: write
|
|
18
|
+
|
|
19
|
+
# Allow one concurrent deployment
|
|
20
|
+
concurrency:
|
|
21
|
+
group: "pages"
|
|
22
|
+
cancel-in-progress: true
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
# Single deploy job since we're just deploying
|
|
26
|
+
deploy:
|
|
27
|
+
environment:
|
|
28
|
+
name: github-pages
|
|
29
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
30
|
+
runs-on: ubuntu-latest
|
|
31
|
+
steps:
|
|
32
|
+
- name: Checkout
|
|
33
|
+
uses: actions/checkout@v4
|
|
34
|
+
|
|
35
|
+
- name: Install packages
|
|
36
|
+
run: |
|
|
37
|
+
set -xe
|
|
38
|
+
sudo apt-get update
|
|
39
|
+
sudo apt-get install -y libgda-5.0
|
|
40
|
+
|
|
41
|
+
- uses: ruby/setup-ruby@v1
|
|
42
|
+
with:
|
|
43
|
+
ruby-version: ruby
|
|
44
|
+
bundler-cache: true
|
|
45
|
+
|
|
46
|
+
- run: bundle exec yard
|
|
47
|
+
|
|
48
|
+
- name: Setup Pages
|
|
49
|
+
uses: actions/configure-pages@v3
|
|
50
|
+
- name: Upload artifact
|
|
51
|
+
uses: actions/upload-pages-artifact@v2
|
|
52
|
+
with:
|
|
53
|
+
# Upload entire repository
|
|
54
|
+
path: './doc'
|
|
55
|
+
- name: Deploy to GitHub Pages
|
|
56
|
+
id: deployment
|
|
57
|
+
uses: actions/deploy-pages@main
|
|
58
|
+
|
|
59
|
+
- name: Slack Notification (not success)
|
|
60
|
+
uses: lazy-actions/slatify@master
|
|
61
|
+
if: "! success()"
|
|
62
|
+
continue-on-error: true
|
|
63
|
+
with:
|
|
64
|
+
job_name: "*pages*"
|
|
65
|
+
type: ${{ job.status }}
|
|
66
|
+
icon_emoji: ":octocat:"
|
|
67
|
+
url: ${{ secrets.SLACK_WEBHOOK }}
|
|
68
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
data/.github/workflows/test.yml
CHANGED
|
@@ -21,23 +21,19 @@ jobs:
|
|
|
21
21
|
|
|
22
22
|
matrix:
|
|
23
23
|
ruby:
|
|
24
|
-
- "2.6"
|
|
25
|
-
- "2.7"
|
|
26
24
|
- "3.0"
|
|
27
25
|
- "3.1"
|
|
26
|
+
- "3.2"
|
|
28
27
|
gemfile:
|
|
29
28
|
- activerecord_6_1
|
|
30
29
|
- activerecord_7_0
|
|
31
|
-
|
|
32
|
-
# activerecord 7.0+ requires Ruby 2.7+
|
|
33
|
-
- ruby: "2.6"
|
|
34
|
-
gemfile: activerecord_7_0
|
|
30
|
+
- activerecord_7_1
|
|
35
31
|
|
|
36
32
|
env:
|
|
37
33
|
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
|
38
34
|
|
|
39
35
|
steps:
|
|
40
|
-
- uses: actions/checkout@
|
|
36
|
+
- uses: actions/checkout@v4
|
|
41
37
|
|
|
42
38
|
- name: Install packages
|
|
43
39
|
run: |
|
data/.rubocop.yml
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
require:
|
|
2
2
|
- rubocop-performance
|
|
3
|
+
- rubocop-yard
|
|
3
4
|
|
|
4
5
|
AllCops:
|
|
5
6
|
NewCops: enable
|
|
6
7
|
SuggestExtensions: false
|
|
7
|
-
TargetRubyVersion:
|
|
8
|
+
TargetRubyVersion: 3.0
|
|
8
9
|
Exclude:
|
|
9
10
|
- 'gemfiles/vendor/**/*'
|
|
10
11
|
- 'benchmark/**/*'
|
|
@@ -15,6 +16,9 @@ AllCops:
|
|
|
15
16
|
- 'vendor/**/*'
|
|
16
17
|
- '.git/**/*'
|
|
17
18
|
|
|
19
|
+
Gemspec/DevelopmentDependencies:
|
|
20
|
+
EnforcedStyle: gemspec
|
|
21
|
+
|
|
18
22
|
Layout/DotPosition:
|
|
19
23
|
EnforcedStyle: trailing
|
|
20
24
|
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
|
-
[full changelog](http://github.com/sue445/rubocop-isucon/compare/
|
|
2
|
+
[full changelog](http://github.com/sue445/rubocop-isucon/compare/v1.0.0...main)
|
|
3
|
+
|
|
4
|
+
## [1.0.0] - 2023-10-29
|
|
5
|
+
[full changelog](http://github.com/sue445/rubocop-isucon/compare/v0.2.0...v1.0.0)
|
|
6
|
+
|
|
7
|
+
* Requires Ruby 3.0+
|
|
8
|
+
* https://github.com/sue445/rubocop-isucon/pull/236
|
|
9
|
+
|
|
10
|
+
## [0.2.0] - 2022-07-31
|
|
11
|
+
[full changelog](http://github.com/sue445/rubocop-isucon/compare/v0.1.0...v0.2.0)
|
|
3
12
|
|
|
4
13
|
* Add `Isucon/Sqlite3/SelectAsterisk`
|
|
5
14
|
* https://github.com/sue445/rubocop-isucon/pull/202
|
|
@@ -12,9 +21,6 @@
|
|
|
12
21
|
* Add `Isucon/Sqlite3/NPlusOneQuery`
|
|
13
22
|
* https://github.com/sue445/rubocop-isucon/pull/210
|
|
14
23
|
|
|
15
|
-
## [0.1.0] - 2022-07-31
|
|
16
|
-
[full changelog](http://github.com/sue445/rubocop-isucon/compare/v0.1.0...v0.2.0)
|
|
17
|
-
|
|
18
24
|
## [0.1.0] - 2022-07-23
|
|
19
25
|
|
|
20
26
|
- Initial release
|
data/README.md
CHANGED
|
@@ -117,3 +117,10 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/sue445
|
|
|
117
117
|
## License
|
|
118
118
|
|
|
119
119
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
120
|
+
|
|
121
|
+
ISUCON is a trademark or registered trademark of LINE Corporation.
|
|
122
|
+
|
|
123
|
+
https://isucon.net
|
|
124
|
+
|
|
125
|
+
## Presentation
|
|
126
|
+
* [Fix SQL N\+1 queries with RuboCop](https://speakerdeck.com/sue445/fix-sql-n-plus-one-queries-with-rubocop) at [RubyKaigi 2023](https://rubykaigi.org/2013/) :gem:
|
data/config/default.yml
CHANGED
|
@@ -16,7 +16,7 @@ Isucon/Mysql2/ManyJoinTable:
|
|
|
16
16
|
CountTables: 3
|
|
17
17
|
|
|
18
18
|
Isucon/Mysql2/NPlusOneQuery:
|
|
19
|
-
Description: 'Checks that N+1 query
|
|
19
|
+
Description: 'Checks that there’s no N+1 query'
|
|
20
20
|
Enabled: true
|
|
21
21
|
VersionAdded: '0.1.0'
|
|
22
22
|
SafeAutoCorrect: false
|
|
@@ -100,7 +100,7 @@ Isucon/Sqlite3/ManyJoinTable:
|
|
|
100
100
|
CountTables: 3
|
|
101
101
|
|
|
102
102
|
Isucon/Sqlite3/NPlusOneQuery:
|
|
103
|
-
Description: 'Checks that N+1 query
|
|
103
|
+
Description: 'Checks that there’s no N+1 query'
|
|
104
104
|
Enabled: true
|
|
105
105
|
VersionAdded: '0.2.0'
|
|
106
106
|
SafeAutoCorrect: false
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source "https://rubygems.org"
|
|
4
|
+
|
|
5
|
+
gem "activerecord", "~> 7.1.0"
|
|
6
|
+
|
|
7
|
+
group :sqlite3 do
|
|
8
|
+
# c.f. https://github.com/rails/rails/blob/v7.1.0/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb#L14
|
|
9
|
+
gem "sqlite3", "~> 1.4"
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# eval_gemfile "#{__dir__}/common.gemfile"
|
|
13
|
+
|
|
14
|
+
gemspec path: "../"
|
|
@@ -9,7 +9,7 @@ module RuboCop
|
|
|
9
9
|
module Correctors
|
|
10
10
|
# rubocop:disable Layout/LineLength
|
|
11
11
|
|
|
12
|
-
# Corrector for {RuboCop::Cop::Isucon::Mysql2::NPlusOneQuery}
|
|
12
|
+
# Corrector for {RuboCop::Cop::Isucon::Mysql2::NPlusOneQuery} and {RuboCop::Cop::Isucon::Sqlite3::NPlusOneQuery}
|
|
13
13
|
#
|
|
14
14
|
# @example Before
|
|
15
15
|
# courses.map do |course|
|
|
@@ -62,7 +62,7 @@ module RuboCop
|
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
# @param select_field_node [GDA::Nodes::SelectField]
|
|
65
|
-
# @return [Hash
|
|
65
|
+
# @return [Hash{Symbol => String}] table_name, column_name
|
|
66
66
|
def parse_select_field_node(select_field_node)
|
|
67
67
|
column_elements = select_field_node.expr.value.split(".", 2)
|
|
68
68
|
|
|
@@ -6,7 +6,7 @@ module RuboCop
|
|
|
6
6
|
module Mysql2
|
|
7
7
|
# rubocop:disable Layout/LineLength
|
|
8
8
|
|
|
9
|
-
# Checks that N+1 query
|
|
9
|
+
# Checks that there’s no N+1 query
|
|
10
10
|
#
|
|
11
11
|
# @note If `Database` isn't configured, auto-correct will not be available. (Only offense detection can be used)
|
|
12
12
|
#
|
|
@@ -10,10 +10,10 @@ module RuboCop
|
|
|
10
10
|
#
|
|
11
11
|
# @example
|
|
12
12
|
# # bad (user_id is not indexed)
|
|
13
|
-
# db.xquery('SELECT id, title FROM articles WHERE
|
|
13
|
+
# db.xquery('SELECT id, title FROM articles WHERE user_id = ?', user_id)
|
|
14
14
|
#
|
|
15
15
|
# # good (user_id is indexed)
|
|
16
|
-
# db.xquery('SELECT id, title FROM articles WHERE
|
|
16
|
+
# db.xquery('SELECT id, title FROM articles WHERE user_id = ?', user_id)
|
|
17
17
|
#
|
|
18
18
|
# # good (id is primary key)
|
|
19
19
|
# db.xquery('SELECT id, title FROM articles WHERE id = ?', id)
|
|
@@ -22,6 +22,13 @@ module RuboCop
|
|
|
22
22
|
# OpenSSL::Digest::SHA512.hexdigest(src)
|
|
23
23
|
# end
|
|
24
24
|
#
|
|
25
|
+
# # bad
|
|
26
|
+
# `curl -s https://example.com`
|
|
27
|
+
#
|
|
28
|
+
# # good
|
|
29
|
+
# require "open-uri"
|
|
30
|
+
# URI.open("https://example.com").read
|
|
31
|
+
#
|
|
25
32
|
class Backtick < Base
|
|
26
33
|
MSG = "Use pure-ruby code instead of external command execution if possible"
|
|
27
34
|
|
|
@@ -6,7 +6,7 @@ module RuboCop
|
|
|
6
6
|
module Sqlite3
|
|
7
7
|
# rubocop:disable Layout/LineLength
|
|
8
8
|
|
|
9
|
-
# Checks that N+1 query
|
|
9
|
+
# Checks that there’s no N+1 query
|
|
10
10
|
#
|
|
11
11
|
# @note If `Database` isn't configured, auto-correct will not be available. (Only offense detection can be used)
|
|
12
12
|
#
|
|
@@ -10,10 +10,10 @@ module RuboCop
|
|
|
10
10
|
#
|
|
11
11
|
# @example
|
|
12
12
|
# # bad (user_id is not indexed)
|
|
13
|
-
# db.execute('SELECT id, title FROM articles WHERE
|
|
13
|
+
# db.execute('SELECT id, title FROM articles WHERE user_id = ?', [user_id])
|
|
14
14
|
#
|
|
15
15
|
# # good (user_id is indexed)
|
|
16
|
-
# db.execute('SELECT id, title FROM articles WHERE
|
|
16
|
+
# db.execute('SELECT id, title FROM articles WHERE user_id = ?', [user_id])
|
|
17
17
|
#
|
|
18
18
|
# # good (id is primary key)
|
|
19
19
|
# db.execute('SELECT id, title FROM articles WHERE id = ?', [id])
|
|
@@ -25,7 +25,7 @@ module RuboCop
|
|
|
25
25
|
# @param column_name [String]
|
|
26
26
|
# @param as [String]
|
|
27
27
|
# @param node [GDA::Nodes::Expr]
|
|
28
|
-
def initialize(table_name: nil, column_name: nil, as: nil, node: nil)
|
|
28
|
+
def initialize(table_name: nil, column_name: nil, as: nil, node: nil)
|
|
29
29
|
@table_name = table_name
|
|
30
30
|
@column_name = column_name
|
|
31
31
|
@as = as
|
data/rubocop-isucon.gemspec
CHANGED
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
|
12
12
|
spec.description = "RuboCop plugin for ruby reference implementation of ISUCON"
|
|
13
13
|
spec.homepage = "https://github.com/sue445/rubocop-isucon"
|
|
14
14
|
spec.license = "MIT"
|
|
15
|
-
spec.required_ruby_version = ">=
|
|
15
|
+
spec.required_ruby_version = ">= 3.0.0"
|
|
16
16
|
|
|
17
17
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
18
18
|
spec.metadata["source_code_uri"] = "https://github.com/sue445/rubocop-isucon"
|
|
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
|
|
|
37
37
|
|
|
38
38
|
spec.add_runtime_dependency "activerecord", ">= 6.1.0"
|
|
39
39
|
spec.add_runtime_dependency "gda", "!= 1.1.2"
|
|
40
|
-
spec.add_runtime_dependency "rubocop", ">= 1.
|
|
40
|
+
spec.add_runtime_dependency "rubocop", ">= 1.49.0"
|
|
41
41
|
spec.add_runtime_dependency "rubocop-performance"
|
|
42
42
|
|
|
43
43
|
spec.add_development_dependency "benchmark-ips"
|
|
@@ -47,6 +47,7 @@ Gem::Specification.new do |spec|
|
|
|
47
47
|
spec.add_development_dependency "rspec", "~> 3.0"
|
|
48
48
|
spec.add_development_dependency "rspec-its"
|
|
49
49
|
spec.add_development_dependency "rubocop_auto_corrector"
|
|
50
|
+
spec.add_development_dependency "rubocop-yard"
|
|
50
51
|
spec.add_development_dependency "sqlite3"
|
|
51
52
|
spec.add_development_dependency "yard"
|
|
52
53
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rubocop-isucon
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- sue445
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-10-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activerecord
|
|
@@ -44,14 +44,14 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - ">="
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.
|
|
47
|
+
version: 1.49.0
|
|
48
48
|
type: :runtime
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - ">="
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: 1.
|
|
54
|
+
version: 1.49.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rubocop-performance
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -164,6 +164,20 @@ dependencies:
|
|
|
164
164
|
- - ">="
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: '0'
|
|
167
|
+
- !ruby/object:Gem::Dependency
|
|
168
|
+
name: rubocop-yard
|
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
|
170
|
+
requirements:
|
|
171
|
+
- - ">="
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '0'
|
|
174
|
+
type: :development
|
|
175
|
+
prerelease: false
|
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
177
|
+
requirements:
|
|
178
|
+
- - ">="
|
|
179
|
+
- !ruby/object:Gem::Version
|
|
180
|
+
version: '0'
|
|
167
181
|
- !ruby/object:Gem::Dependency
|
|
168
182
|
name: sqlite3
|
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -199,7 +213,8 @@ executables: []
|
|
|
199
213
|
extensions: []
|
|
200
214
|
extra_rdoc_files: []
|
|
201
215
|
files:
|
|
202
|
-
- ".github/
|
|
216
|
+
- ".github/dependabot.yml"
|
|
217
|
+
- ".github/workflows/pages.yml"
|
|
203
218
|
- ".github/workflows/test.yml"
|
|
204
219
|
- ".gitignore"
|
|
205
220
|
- ".rspec"
|
|
@@ -220,6 +235,7 @@ files:
|
|
|
220
235
|
- config/enable-only-performance.yml
|
|
221
236
|
- gemfiles/activerecord_6_1.gemfile
|
|
222
237
|
- gemfiles/activerecord_7_0.gemfile
|
|
238
|
+
- gemfiles/activerecord_7_1.gemfile
|
|
223
239
|
- lib/rubocop-isucon.rb
|
|
224
240
|
- lib/rubocop/cop/isucon/correctors/n_plus_one_query_corrector.rb
|
|
225
241
|
- lib/rubocop/cop/isucon/correctors/n_plus_one_query_corrector/correctable_methods.rb
|
|
@@ -284,14 +300,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
284
300
|
requirements:
|
|
285
301
|
- - ">="
|
|
286
302
|
- !ruby/object:Gem::Version
|
|
287
|
-
version:
|
|
303
|
+
version: 3.0.0
|
|
288
304
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
289
305
|
requirements:
|
|
290
306
|
- - ">="
|
|
291
307
|
- !ruby/object:Gem::Version
|
|
292
308
|
version: '0'
|
|
293
309
|
requirements: []
|
|
294
|
-
rubygems_version: 3.
|
|
310
|
+
rubygems_version: 3.4.10
|
|
295
311
|
signing_key:
|
|
296
312
|
specification_version: 4
|
|
297
313
|
summary: RuboCop plugin for ruby reference implementation of ISUCON
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
name: gh-pages
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches:
|
|
6
|
-
- main
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
publish_yard:
|
|
10
|
-
runs-on: ubuntu-latest
|
|
11
|
-
|
|
12
|
-
steps:
|
|
13
|
-
- uses: actions/checkout@v2
|
|
14
|
-
|
|
15
|
-
- name: Install packages
|
|
16
|
-
run: |
|
|
17
|
-
set -xe
|
|
18
|
-
sudo apt-get update
|
|
19
|
-
sudo apt-get install -y libgda-5.0
|
|
20
|
-
|
|
21
|
-
- uses: ruby/setup-ruby@v1
|
|
22
|
-
with:
|
|
23
|
-
ruby-version: "3.1"
|
|
24
|
-
bundler-cache: true
|
|
25
|
-
|
|
26
|
-
- run: bundle exec yard
|
|
27
|
-
|
|
28
|
-
- name: Deploy to GitHub Pages
|
|
29
|
-
uses: peaceiris/actions-gh-pages@v3
|
|
30
|
-
with:
|
|
31
|
-
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
32
|
-
publish_dir: ./doc
|
|
33
|
-
publish_branch: gh-pages
|
|
34
|
-
|
|
35
|
-
- name: Slack Notification (not success)
|
|
36
|
-
uses: lazy-actions/slatify@master
|
|
37
|
-
if: "! success()"
|
|
38
|
-
continue-on-error: true
|
|
39
|
-
with:
|
|
40
|
-
job_name: ${{ format('*publish_yard*') }}
|
|
41
|
-
type: ${{ job.status }}
|
|
42
|
-
icon_emoji: ":octocat:"
|
|
43
|
-
url: ${{ secrets.SLACK_WEBHOOK }}
|
|
44
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|