healthcheck_endpoint 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 +7 -0
- data/.circleci/config.yml +213 -0
- data/.circleci/gemspecs/compatible +25 -0
- data/.circleci/gemspecs/latest +33 -0
- data/.circleci/linter_configs/.bundler-audit.yml +4 -0
- data/.circleci/linter_configs/.commitspell.yml +33 -0
- data/.circleci/linter_configs/.cspell.yml +32 -0
- data/.circleci/linter_configs/.fasterer.yml +4 -0
- data/.circleci/linter_configs/.lefthook.yml +44 -0
- data/.circleci/linter_configs/.markdownlint.yml +9 -0
- data/.circleci/linter_configs/.rubocop.yml +143 -0
- data/.circleci/linter_configs/.yamllint.yml +7 -0
- data/.circleci/scripts/changeloglint.sh +22 -0
- data/.circleci/scripts/commitspell.sh +22 -0
- data/.circleci/scripts/release.sh +69 -0
- data/.circleci/scripts/set_publisher_credentials.sh +12 -0
- data/.codeclimate.yml +17 -0
- data/.github/BRANCH_NAMING_CONVENTION.md +36 -0
- data/.github/DEVELOPMENT_ENVIRONMENT_GUIDE.md +26 -0
- data/.github/FUNDING.yml +3 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +27 -0
- data/.github/ISSUE_TEMPLATE/issue_report.md +32 -0
- data/.github/ISSUE_TEMPLATE/question.md +22 -0
- data/.github/PULL_REQUEST_TEMPLATE.md +49 -0
- data/.gitignore +11 -0
- data/.reek.yml +39 -0
- data/.rspec +2 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +52 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/CONTRIBUTING.md +48 -0
- data/Gemfile +5 -0
- data/LICENSE.txt +21 -0
- data/README.md +256 -0
- data/Rakefile +8 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/healthcheck_endpoint.gemspec +28 -0
- data/lib/healthcheck_endpoint/configuration.rb +139 -0
- data/lib/healthcheck_endpoint/core.rb +20 -0
- data/lib/healthcheck_endpoint/error/configuration/argument_type.rb +13 -0
- data/lib/healthcheck_endpoint/error/configuration/enpoint_pattern.rb +13 -0
- data/lib/healthcheck_endpoint/error/configuration/http_status_failure.rb +13 -0
- data/lib/healthcheck_endpoint/error/configuration/http_status_success.rb +13 -0
- data/lib/healthcheck_endpoint/error/configuration/not_callable_service.rb +13 -0
- data/lib/healthcheck_endpoint/error/configuration/not_configured.rb +13 -0
- data/lib/healthcheck_endpoint/error/configuration/unknown_service.rb +13 -0
- data/lib/healthcheck_endpoint/rack_middleware.rb +25 -0
- data/lib/healthcheck_endpoint/resolver.rb +82 -0
- data/lib/healthcheck_endpoint/version.rb +5 -0
- data/lib/healthcheck_endpoint.rb +25 -0
- metadata +171 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 9b3f53e0d58a6b614f569ce987ac481728be5bb71e7edacb2eed5f4d2d94c066
|
4
|
+
data.tar.gz: e51746dc8cf57f7c5545eeff968e604953e85b08862190837a8bec1eac384704
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 55d450f26b9c900dec3a7c619c10b55bc5a43bf60c5ba50e4fb5c23e9a42ff18522294ccef149bb3b815f16a903b299d4a20ff0e54ded9f79ae5e669db6cb5d3
|
7
|
+
data.tar.gz: 5ab00ab01f34147d3a4c88e8b0fefc422fd64c62e7b356725d14854283f595130e52b2fbe340e069cfe9e6d71fb431b04081896c62a394e29e9d31c7983ca6b3
|
@@ -0,0 +1,213 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
version: 2.1
|
4
|
+
|
5
|
+
defaults: &defaults
|
6
|
+
working_directory: ~/healthcheck-endpoint
|
7
|
+
docker:
|
8
|
+
- image: cimg/ruby:<< parameters.ruby-version >>
|
9
|
+
|
10
|
+
orbs:
|
11
|
+
ruby: circleci/ruby@2.3.0
|
12
|
+
|
13
|
+
references:
|
14
|
+
bundle_install: &bundle_install
|
15
|
+
run:
|
16
|
+
name: Installing gems
|
17
|
+
command: |
|
18
|
+
bundle config set --local path '~/vendor/bundle'
|
19
|
+
bundle install
|
20
|
+
|
21
|
+
install_linters: &install_linters
|
22
|
+
run:
|
23
|
+
name: Installing bunch of linters
|
24
|
+
command: |
|
25
|
+
curl -1sLf 'https://dl.cloudsmith.io/public/evilmartians/lefthook/setup.deb.sh' | sudo -E bash
|
26
|
+
sudo apt-get update -y
|
27
|
+
sudo apt-get install -y lefthook shellcheck yamllint
|
28
|
+
npm install --prefix='~/.local' --global --save-dev git+https://github.com/streetsidesoftware/cspell-cli markdownlint-cli
|
29
|
+
cp .circleci/linter_configs/.fasterer.yml .fasterer.yml
|
30
|
+
cp .circleci/linter_configs/.lefthook.yml lefthook.yml
|
31
|
+
|
32
|
+
install_codeclimate_reporter: &install_codeclimate_reporter
|
33
|
+
run:
|
34
|
+
name: Installing CodeClimate test reporter
|
35
|
+
command: |
|
36
|
+
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
37
|
+
chmod +x ./cc-test-reporter
|
38
|
+
|
39
|
+
use_latest_bundler: &use_latest_bundler
|
40
|
+
run:
|
41
|
+
name: Using latest bundler
|
42
|
+
command: gem install bundler
|
43
|
+
|
44
|
+
use_latest_gemspec: &use_latest_gemspec
|
45
|
+
run:
|
46
|
+
name: Using latest gemspec
|
47
|
+
command: cp .circleci/gemspecs/latest healthcheck_endpoint.gemspec
|
48
|
+
|
49
|
+
use_compatible_gemspec: &use_compatible_gemspec
|
50
|
+
run:
|
51
|
+
name: Using compatible gemspec
|
52
|
+
command: cp .circleci/gemspecs/compatible healthcheck_endpoint.gemspec
|
53
|
+
|
54
|
+
jobs:
|
55
|
+
linters-ruby:
|
56
|
+
parameters:
|
57
|
+
ruby-version:
|
58
|
+
type: string
|
59
|
+
|
60
|
+
<<: *defaults
|
61
|
+
|
62
|
+
steps:
|
63
|
+
- checkout
|
64
|
+
|
65
|
+
- <<: *use_latest_bundler
|
66
|
+
- <<: *use_latest_gemspec
|
67
|
+
- <<: *bundle_install
|
68
|
+
- <<: *install_linters
|
69
|
+
|
70
|
+
- run:
|
71
|
+
name: Running commit linters
|
72
|
+
command: lefthook run commit-linters
|
73
|
+
|
74
|
+
- run:
|
75
|
+
name: Running code style linters
|
76
|
+
command: lefthook run code-style-linters
|
77
|
+
|
78
|
+
- run:
|
79
|
+
name: Running code performance linters
|
80
|
+
command: lefthook run code-performance-linters
|
81
|
+
|
82
|
+
- run:
|
83
|
+
name: Running code vulnerability linters
|
84
|
+
command: lefthook run code-vulnerability-linters
|
85
|
+
|
86
|
+
- run:
|
87
|
+
name: Running code documentation linters
|
88
|
+
command: lefthook run code-documentation-linters
|
89
|
+
|
90
|
+
- run:
|
91
|
+
name: Running release linters
|
92
|
+
command: lefthook run release-linters
|
93
|
+
|
94
|
+
tests-ruby:
|
95
|
+
parameters:
|
96
|
+
ruby-version:
|
97
|
+
type: string
|
98
|
+
|
99
|
+
<<: *defaults
|
100
|
+
|
101
|
+
steps:
|
102
|
+
- checkout
|
103
|
+
|
104
|
+
- <<: *use_latest_bundler
|
105
|
+
- <<: *use_latest_gemspec
|
106
|
+
- <<: *bundle_install
|
107
|
+
- <<: *install_codeclimate_reporter
|
108
|
+
|
109
|
+
- run:
|
110
|
+
name: Running RSpec
|
111
|
+
command: |
|
112
|
+
./cc-test-reporter before-build
|
113
|
+
bundle exec rspec
|
114
|
+
|
115
|
+
- run:
|
116
|
+
name: Creating CodeClimate test coverage report
|
117
|
+
command: |
|
118
|
+
./cc-test-reporter format-coverage -t simplecov -o "coverage/codeclimate.$CIRCLE_NODE_INDEX.json"
|
119
|
+
|
120
|
+
- store_artifacts:
|
121
|
+
name: Saving Simplecov coverage artifacts
|
122
|
+
path: ~/healthcheck-endpoint/coverage
|
123
|
+
destination: coverage
|
124
|
+
|
125
|
+
- deploy:
|
126
|
+
name: Uploading CodeClimate test coverage report
|
127
|
+
command: |
|
128
|
+
./cc-test-reporter sum-coverage --output - --parts $CIRCLE_NODE_TOTAL coverage/codeclimate.*.json | ./cc-test-reporter upload-coverage --debug --input -
|
129
|
+
|
130
|
+
compatibility-ruby:
|
131
|
+
parameters:
|
132
|
+
ruby-version:
|
133
|
+
type: string
|
134
|
+
|
135
|
+
<<: *defaults
|
136
|
+
|
137
|
+
steps:
|
138
|
+
- checkout
|
139
|
+
|
140
|
+
- <<: *use_compatible_gemspec
|
141
|
+
|
142
|
+
- ruby/install-deps:
|
143
|
+
bundler-version: "2.3.26"
|
144
|
+
with-cache: false
|
145
|
+
path: '~/vendor/custom_bundle'
|
146
|
+
|
147
|
+
- run:
|
148
|
+
name: Running compatibility tests
|
149
|
+
command: bundle exec rspec
|
150
|
+
|
151
|
+
rubygems-deps-ruby:
|
152
|
+
parameters:
|
153
|
+
ruby-version:
|
154
|
+
type: string
|
155
|
+
|
156
|
+
<<: *defaults
|
157
|
+
|
158
|
+
steps:
|
159
|
+
- checkout
|
160
|
+
|
161
|
+
- run:
|
162
|
+
name: Building rubygems dependencies from default gemspec on minimal Ruby version
|
163
|
+
command: bundle install
|
164
|
+
|
165
|
+
releasing-gem-from-ruby:
|
166
|
+
parameters:
|
167
|
+
ruby-version:
|
168
|
+
type: string
|
169
|
+
|
170
|
+
<<: *defaults
|
171
|
+
|
172
|
+
steps:
|
173
|
+
- checkout
|
174
|
+
|
175
|
+
- add_ssh_keys:
|
176
|
+
fingerprints:
|
177
|
+
- "SHA256:eJhlVtu2gws5rDavHcqZ5GJF/aS8kCctMprdC+Twlns"
|
178
|
+
|
179
|
+
- run:
|
180
|
+
name: Publishing new release
|
181
|
+
command: ./.circleci/scripts/release.sh
|
182
|
+
|
183
|
+
workflows:
|
184
|
+
build_test_deploy:
|
185
|
+
jobs:
|
186
|
+
- linters-ruby:
|
187
|
+
matrix:
|
188
|
+
parameters:
|
189
|
+
ruby-version: ["3.3-node"]
|
190
|
+
- tests-ruby:
|
191
|
+
matrix:
|
192
|
+
parameters:
|
193
|
+
ruby-version: ["3.3"]
|
194
|
+
- compatibility-ruby:
|
195
|
+
matrix:
|
196
|
+
parameters:
|
197
|
+
ruby-version: ["2.5", "2.6", "2.7", "3.0", "3.1", "3.2"]
|
198
|
+
- rubygems-deps-ruby:
|
199
|
+
matrix:
|
200
|
+
parameters:
|
201
|
+
ruby-version: ["2.5"]
|
202
|
+
- releasing-gem-from-ruby:
|
203
|
+
requires:
|
204
|
+
- linters-ruby
|
205
|
+
- tests-ruby
|
206
|
+
- compatibility-ruby
|
207
|
+
- rubygems-deps-ruby
|
208
|
+
matrix:
|
209
|
+
parameters:
|
210
|
+
ruby-version: ["2.5"]
|
211
|
+
filters:
|
212
|
+
branches:
|
213
|
+
only: master
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/healthcheck_endpoint/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'healthcheck_endpoint'
|
7
|
+
spec.version = HealthcheckEndpoint::VERSION
|
8
|
+
spec.authors = ['Vladislav Trotsenko']
|
9
|
+
spec.email = %w[admin@bestweb.com.ua]
|
10
|
+
spec.summary = %(Simple configurable application healthcheck rack middleware)
|
11
|
+
spec.description = %(Simple configurable application healthcheck rack middleware.)
|
12
|
+
spec.homepage = 'https://github.com/obstools/healthcheck-endpoint'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
|
15
|
+
spec.required_ruby_version = '>= 2.5.0'
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.require_paths = %w[lib]
|
18
|
+
|
19
|
+
spec.add_runtime_dependency 'rack', '>= 2.0.1'
|
20
|
+
|
21
|
+
spec.add_development_dependency 'ffaker'
|
22
|
+
spec.add_development_dependency 'json_matchers'
|
23
|
+
spec.add_development_dependency 'rake'
|
24
|
+
spec.add_development_dependency 'rspec'
|
25
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/healthcheck_endpoint/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'healthcheck_endpoint'
|
7
|
+
spec.version = HealthcheckEndpoint::VERSION
|
8
|
+
spec.authors = ['Vladislav Trotsenko']
|
9
|
+
spec.email = %w[admin@bestweb.com.ua]
|
10
|
+
spec.summary = %(Simple configurable application healthcheck rack middleware)
|
11
|
+
spec.description = %(Simple configurable application healthcheck rack middleware.)
|
12
|
+
spec.homepage = 'https://github.com/obstools/healthcheck-endpoint'
|
13
|
+
spec.license = 'MIT'
|
14
|
+
|
15
|
+
spec.required_ruby_version = '>= 2.5.0'
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.require_paths = %w[lib]
|
18
|
+
|
19
|
+
spec.add_runtime_dependency 'rack', '>= 2.0.1'
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler-audit', '~> 0.9.2'
|
22
|
+
spec.add_development_dependency 'fasterer', '~> 0.11.0'
|
23
|
+
spec.add_development_dependency 'ffaker', '~> 2.23'
|
24
|
+
spec.add_development_dependency 'json_matchers', '~> 0.11.1'
|
25
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.10', '>= 3.10.1'
|
26
|
+
spec.add_development_dependency 'rake', '~> 13.2', '>= 13.2.1'
|
27
|
+
spec.add_development_dependency 'reek', '~> 6.3'
|
28
|
+
spec.add_development_dependency 'rspec', '~> 3.13'
|
29
|
+
spec.add_development_dependency 'rubocop', '~> 1.67'
|
30
|
+
spec.add_development_dependency 'rubocop-performance', '~> 1.22', '>= 1.22.1'
|
31
|
+
spec.add_development_dependency 'rubocop-rspec', '~> 3.1'
|
32
|
+
spec.add_development_dependency 'simplecov', '~> 0.22.0'
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
enableGlobDot: true
|
4
|
+
|
5
|
+
patterns:
|
6
|
+
- name: GithubUser
|
7
|
+
pattern: /\[@.+\]/gmx
|
8
|
+
|
9
|
+
languageSettings:
|
10
|
+
- languageId: markdown
|
11
|
+
ignoreRegExpList:
|
12
|
+
- Email
|
13
|
+
- GithubUser
|
14
|
+
|
15
|
+
words:
|
16
|
+
- Vladislav
|
17
|
+
- Trotsenko
|
18
|
+
- bagage
|
19
|
+
- bagages
|
20
|
+
- bestwebua
|
21
|
+
- codebases
|
22
|
+
- codeclimate
|
23
|
+
- commitspell
|
24
|
+
- creds
|
25
|
+
- gemspecs
|
26
|
+
- healthcheck
|
27
|
+
- lefthook
|
28
|
+
- markdownlint
|
29
|
+
- rubocop
|
30
|
+
- simplecov
|
31
|
+
- stdlib
|
32
|
+
- obstools
|
33
|
+
- yamlint
|
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
enableGlobDot: true
|
4
|
+
|
5
|
+
patterns:
|
6
|
+
- name: GithubUser
|
7
|
+
pattern: /\[@.+\]/gmx
|
8
|
+
- name: MarkdownCode
|
9
|
+
pattern: /`{1,3}.+`{1,3}/gmx
|
10
|
+
- name: MarkdownCodeBlock
|
11
|
+
pattern: /^\s*```[\s\S]*?^\s*```/gmx
|
12
|
+
|
13
|
+
languageSettings:
|
14
|
+
- languageId: markdown
|
15
|
+
ignoreRegExpList:
|
16
|
+
- Email
|
17
|
+
- GithubUser
|
18
|
+
- MarkdownCode
|
19
|
+
- MarkdownCodeBlock
|
20
|
+
|
21
|
+
words:
|
22
|
+
- Vladislav
|
23
|
+
- Trotsenko
|
24
|
+
- bestwebua
|
25
|
+
- codebases
|
26
|
+
- commiting
|
27
|
+
- gemspecs
|
28
|
+
- hanami
|
29
|
+
- healthcheck
|
30
|
+
- healthchecks
|
31
|
+
- obstools
|
32
|
+
- roda
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
no_tty: true
|
4
|
+
skip_output:
|
5
|
+
- meta
|
6
|
+
|
7
|
+
commit-linters:
|
8
|
+
commands:
|
9
|
+
commitspell:
|
10
|
+
run: .circleci/scripts/commitspell.sh -c '.circleci/linter_configs/.commitspell.yml'
|
11
|
+
|
12
|
+
code-style-linters:
|
13
|
+
commands:
|
14
|
+
reek:
|
15
|
+
run: bundle exec reek
|
16
|
+
rubocop:
|
17
|
+
run: bundle exec rubocop -c '.circleci/linter_configs/.rubocop.yml'
|
18
|
+
shellcheck:
|
19
|
+
glob: '*.{sh}'
|
20
|
+
run: shellcheck --norc {all_files}
|
21
|
+
yamllint:
|
22
|
+
run: yamllint -c '.circleci/linter_configs/.yamllint.yml' .
|
23
|
+
|
24
|
+
code-performance-linters:
|
25
|
+
commands:
|
26
|
+
fasterer:
|
27
|
+
run: bundle exec fasterer
|
28
|
+
|
29
|
+
code-vulnerability-linters:
|
30
|
+
commands:
|
31
|
+
bundle-audit:
|
32
|
+
run: bundle exec bundle-audit check -c '.circleci/linter_configs/.bundler-audit.yml' --update
|
33
|
+
|
34
|
+
code-documentation-linters:
|
35
|
+
commands:
|
36
|
+
cspell:
|
37
|
+
run: cspell-cli lint -c '.circleci/linter_configs/.cspell.yml' '**/*.{txt,md}'
|
38
|
+
markdownlint:
|
39
|
+
run: markdownlint -c '.circleci/linter_configs/.markdownlint.yml' '**/*.md'
|
40
|
+
|
41
|
+
release-linters:
|
42
|
+
commands:
|
43
|
+
changeloglint:
|
44
|
+
run: .circleci/scripts/changeloglint.sh
|
@@ -0,0 +1,143 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
require:
|
4
|
+
- rubocop-rspec
|
5
|
+
- rubocop-performance
|
6
|
+
|
7
|
+
AllCops:
|
8
|
+
DisplayCopNames: true
|
9
|
+
DisplayStyleGuide: true
|
10
|
+
TargetRubyVersion: 2.5
|
11
|
+
SuggestExtensions: false
|
12
|
+
NewCops: enable
|
13
|
+
|
14
|
+
# Metrics ---------------------------------------------------------------------
|
15
|
+
|
16
|
+
Metrics/ClassLength:
|
17
|
+
Max: 150
|
18
|
+
|
19
|
+
Metrics/MethodLength:
|
20
|
+
Max: 15
|
21
|
+
|
22
|
+
Metrics/BlockLength:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
Metrics/CyclomaticComplexity:
|
26
|
+
Enabled: false
|
27
|
+
|
28
|
+
Metrics/PerceivedComplexity:
|
29
|
+
Enabled: false
|
30
|
+
|
31
|
+
# Naming ----------------------------------------------------------------------
|
32
|
+
|
33
|
+
Naming/VariableNumber:
|
34
|
+
Enabled: false
|
35
|
+
|
36
|
+
Naming/RescuedExceptionsVariableName:
|
37
|
+
Enabled: false
|
38
|
+
|
39
|
+
Naming/InclusiveLanguage:
|
40
|
+
Enabled: false
|
41
|
+
|
42
|
+
# Style -----------------------------------------------------------------------
|
43
|
+
|
44
|
+
Style/Documentation:
|
45
|
+
Enabled: false
|
46
|
+
|
47
|
+
Style/DoubleNegation:
|
48
|
+
Enabled: false
|
49
|
+
|
50
|
+
Style/EmptyCaseCondition:
|
51
|
+
Enabled: false
|
52
|
+
|
53
|
+
Style/ParallelAssignment:
|
54
|
+
Enabled: false
|
55
|
+
|
56
|
+
Style/RescueStandardError:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
Style/RedundantConstantBase:
|
60
|
+
Enabled: false
|
61
|
+
|
62
|
+
# Layout ----------------------------------------------------------------------
|
63
|
+
|
64
|
+
Layout/LineLength:
|
65
|
+
Max: 150
|
66
|
+
|
67
|
+
Layout/ClassStructure:
|
68
|
+
Enabled: true
|
69
|
+
Categories:
|
70
|
+
module_inclusion:
|
71
|
+
- include
|
72
|
+
- prepend
|
73
|
+
- extend
|
74
|
+
ExpectedOrder:
|
75
|
+
- module_inclusion
|
76
|
+
- constants
|
77
|
+
- public_class_methods
|
78
|
+
- initializer
|
79
|
+
- public_methods
|
80
|
+
- protected_methods
|
81
|
+
- private_methods
|
82
|
+
|
83
|
+
Layout/EmptyLineAfterGuardClause:
|
84
|
+
Enabled: false
|
85
|
+
|
86
|
+
# Lint ------------------------------------------------------------------------
|
87
|
+
|
88
|
+
Lint/NoReturnInBeginEndBlocks:
|
89
|
+
Enabled: false
|
90
|
+
|
91
|
+
# Gemspec ---------------------------------------------------------------------
|
92
|
+
|
93
|
+
Gemspec/RequireMFA:
|
94
|
+
Enabled: false
|
95
|
+
|
96
|
+
Gemspec/DevelopmentDependencies:
|
97
|
+
Enabled: false
|
98
|
+
|
99
|
+
Gemspec/AddRuntimeDependency:
|
100
|
+
Enabled: false
|
101
|
+
|
102
|
+
# Performance -----------------------------------------------------------------
|
103
|
+
|
104
|
+
Performance/MethodObjectAsBlock:
|
105
|
+
Enabled: false
|
106
|
+
|
107
|
+
# RSpec -----------------------------------------------------------------------
|
108
|
+
|
109
|
+
RSpec/ExampleLength:
|
110
|
+
Enabled: false
|
111
|
+
|
112
|
+
RSpec/NestedGroups:
|
113
|
+
Enabled: false
|
114
|
+
|
115
|
+
RSpec/MultipleExpectations:
|
116
|
+
Enabled: false
|
117
|
+
|
118
|
+
RSpec/MessageChain:
|
119
|
+
Enabled: false
|
120
|
+
|
121
|
+
RSpec/ContextWording:
|
122
|
+
Enabled: false
|
123
|
+
|
124
|
+
RSpec/AnyInstance:
|
125
|
+
Enabled: false
|
126
|
+
|
127
|
+
RSpec/MessageSpies:
|
128
|
+
Enabled: false
|
129
|
+
|
130
|
+
RSpec/MultipleDescribes:
|
131
|
+
Enabled: false
|
132
|
+
|
133
|
+
RSpec/MultipleMemoizedHelpers:
|
134
|
+
Enabled: false
|
135
|
+
|
136
|
+
RSpec/StubbedMock:
|
137
|
+
Enabled: false
|
138
|
+
|
139
|
+
RSpec/VerifiedDoubleReference:
|
140
|
+
Enabled: false
|
141
|
+
|
142
|
+
RSpec/StringAsInstanceDoubleConstant:
|
143
|
+
Enabled: false
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
set -e
|
3
|
+
|
4
|
+
changelog=$(if [ "$1" = "" ]; then echo "CHANGELOG.md"; else echo "$1"; fi)
|
5
|
+
|
6
|
+
get_current_gem_version() {
|
7
|
+
ruby -r rubygems -e "puts Gem::Specification::load('$(ls -- *.gemspec)').version"
|
8
|
+
}
|
9
|
+
|
10
|
+
latest_changelog_tag() {
|
11
|
+
grep -Po "(?<=\#\# \[)[0-9]+\.[0-9]+\.[0-9]+?(?=\])" "$changelog" | head -n 1
|
12
|
+
}
|
13
|
+
|
14
|
+
current_gem_version="$(get_current_gem_version)"
|
15
|
+
|
16
|
+
if [ "$current_gem_version" = "$(latest_changelog_tag)" ]
|
17
|
+
then
|
18
|
+
echo "SUCCESS: Current gem version ($current_gem_version) has been found on the top of project changelog."
|
19
|
+
else
|
20
|
+
echo "FAILURE: Following to \"Keep a Changelog\" convention current gem version ($current_gem_version) must be mentioned on the top of project changelog."
|
21
|
+
exit 1
|
22
|
+
fi
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
set -e
|
3
|
+
|
4
|
+
configuration=$(if [ "$2" = "" ]; then echo "$2"; else echo " $1 $2"; fi)
|
5
|
+
latest_commit=$(git rev-parse HEAD)
|
6
|
+
|
7
|
+
spellcheck_info() {
|
8
|
+
echo "Checking the spelling of the latest commit ($latest_commit) message..."
|
9
|
+
}
|
10
|
+
|
11
|
+
compose_cspell_command() {
|
12
|
+
echo "cspell-cli lint stdin$configuration"
|
13
|
+
}
|
14
|
+
|
15
|
+
cspell="$(compose_cspell_command)"
|
16
|
+
|
17
|
+
spellcheck_latest_commit() {
|
18
|
+
git log -1 --pretty=%B | $cspell
|
19
|
+
}
|
20
|
+
|
21
|
+
spellcheck_info
|
22
|
+
spellcheck_latest_commit
|
@@ -0,0 +1,69 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
set -e
|
3
|
+
|
4
|
+
GH_CLI_RELEASES_URL="https://github.com/cli/cli/releases"
|
5
|
+
FILE_NAME="gh"
|
6
|
+
BUILD_ARCHITECTURE="linux_amd64.deb"
|
7
|
+
DELIMETER="_"
|
8
|
+
PACKAGE_FILE="$FILE_NAME$DELIMETER$BUILD_ARCHITECTURE"
|
9
|
+
|
10
|
+
gh_cli_latest_release() {
|
11
|
+
curl -sL -o /dev/null -w '%{url_effective}' "$GH_CLI_RELEASES_URL/latest" | rev | cut -f 1 -d '/'| rev
|
12
|
+
}
|
13
|
+
|
14
|
+
download_gh_cli() {
|
15
|
+
test -z "$VERSION" && VERSION="$(gh_cli_latest_release)"
|
16
|
+
test -z "$VERSION" && {
|
17
|
+
echo "Unable to get GitHub CLI release." >&2
|
18
|
+
exit 1
|
19
|
+
}
|
20
|
+
curl -s -L -o "$PACKAGE_FILE" "$GH_CLI_RELEASES_URL/download/$VERSION/$FILE_NAME$DELIMETER$(printf '%s' "$VERSION" | cut -c 2-100)$DELIMETER$BUILD_ARCHITECTURE"
|
21
|
+
}
|
22
|
+
|
23
|
+
install_gh_cli() {
|
24
|
+
sudo dpkg -i "$PACKAGE_FILE"
|
25
|
+
rm "$PACKAGE_FILE"
|
26
|
+
}
|
27
|
+
|
28
|
+
get_release_candidate_version() {
|
29
|
+
ruby -r rubygems -e "puts Gem::Specification::load('$(ls -- *.gemspec)').version"
|
30
|
+
}
|
31
|
+
|
32
|
+
release_candidate_tag="v$(get_release_candidate_version)"
|
33
|
+
|
34
|
+
is_an_existing_github_release() {
|
35
|
+
git fetch origin "refs/tags/$release_candidate_tag" >/dev/null 2>&1
|
36
|
+
}
|
37
|
+
|
38
|
+
release_to_rubygems() {
|
39
|
+
echo "Setting RubyGems publisher credentials..."
|
40
|
+
./.circleci/scripts/set_publisher_credentials.sh
|
41
|
+
echo "Preparation for release..."
|
42
|
+
git config --global user.email "${PUBLISHER_EMAIL}"
|
43
|
+
git config --global user.name "${PUBLISHER_NAME}"
|
44
|
+
git stash
|
45
|
+
gem install yard gem-ctags
|
46
|
+
bundle install
|
47
|
+
echo "Publishing new gem release to RubyGems..."
|
48
|
+
rake release
|
49
|
+
}
|
50
|
+
|
51
|
+
release_to_github() {
|
52
|
+
echo "Downloading and installing latest gh cli..."
|
53
|
+
download_gh_cli
|
54
|
+
install_gh_cli
|
55
|
+
echo "Publishing new release notes to GitHub..."
|
56
|
+
gh release create "$release_candidate_tag" --generate-notes
|
57
|
+
}
|
58
|
+
|
59
|
+
update_develop_branch() {
|
60
|
+
echo "Updating develop branch with new release tag..."
|
61
|
+
git checkout develop
|
62
|
+
git merge "$release_candidate_tag" --ff --no-edit
|
63
|
+
git push origin develop
|
64
|
+
}
|
65
|
+
|
66
|
+
if is_an_existing_github_release
|
67
|
+
then echo "Tag $release_candidate_tag already exists on GitHub. Skipping releasing flow..."
|
68
|
+
else release_to_rubygems; release_to_github; update_develop_branch
|
69
|
+
fi
|