Skip to content

Commit 2ae0b71

Browse files
authored
Merge pull request #15 from openaustralia/feat/configure-ci
2 parents 45c5e8b + 4076128 commit 2ae0b71

9 files changed

Lines changed: 391 additions & 2 deletions

File tree

.github/workflows/ci.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches: [master]
6+
push:
7+
branches: [master]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
concurrency:
14+
group: ${{ github.workflow }}-${{ github.ref }}
15+
cancel-in-progress: true
16+
17+
jobs:
18+
build:
19+
name: build
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v5
23+
- name: Set up Ruby
24+
uses: ruby/setup-ruby@v1
25+
with:
26+
ruby-version: "3.3"
27+
bundler-cache: true
28+
- name: Build gem
29+
run: bundle exec rake build
30+
31+
test:
32+
name: test (${{ matrix.ruby-version }})
33+
runs-on: ubuntu-latest
34+
strategy:
35+
fail-fast: false
36+
matrix:
37+
ruby-version: ["2.7", "3.1", "3.2", "3.3"]
38+
steps:
39+
- uses: actions/checkout@v5
40+
- name: Set up Ruby
41+
uses: ruby/setup-ruby@v1
42+
with:
43+
ruby-version: ${{ matrix.ruby-version }}
44+
bundler-cache: true
45+
- name: Run tests
46+
run: bundle exec rspec
47+
48+
lint:
49+
name: lint
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v5
53+
- name: Set up Ruby
54+
uses: ruby/setup-ruby@v1
55+
with:
56+
ruby-version: "3.3"
57+
bundler-cache: true
58+
- name: Run RuboCop
59+
run: bundle exec rubocop
60+
61+
audit:
62+
name: audit
63+
runs-on: ubuntu-latest
64+
steps:
65+
- uses: actions/checkout@v5
66+
- name: Set up Ruby
67+
uses: ruby/setup-ruby@v1
68+
with:
69+
ruby-version: "3.3"
70+
bundler-cache: true
71+
- name: Run bundler-audit
72+
run: bundle exec bundler-audit check --update

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ rdoc
1414
spec/reports
1515
test/tmp
1616
test/version_tmp
17-
tmp
17+
tmp
18+
.rubocop_cache/

.rubocop.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
inherit_from:
2+
- .rubocop_todo.yml
3+
4+
AllCops:
5+
NewCops: enable
6+
SuggestExtensions: false
7+
TargetRubyVersion: 2.7

.rubocop_todo.yml

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
# This configuration was generated by
2+
# `rubocop --auto-gen-config`
3+
# on 2026-02-23 02:28:44 UTC using RuboCop version 1.84.2.
4+
# The point is for the user to remove these configuration records
5+
# one by one as the offenses are removed from the code base.
6+
# Note that changes in the inspected code, or installation of new
7+
# versions of RuboCop, may require this file to be generated again.
8+
9+
# Offense count: 1
10+
# This cop supports safe autocorrection (--autocorrect).
11+
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation.
12+
Bundler/OrderedGems:
13+
Exclude:
14+
- 'Gemfile'
15+
16+
# Offense count: 1
17+
# This cop supports safe autocorrection (--autocorrect).
18+
Gemspec/DeprecatedAttributeAssignment:
19+
Exclude:
20+
- 'morph-cli.gemspec'
21+
22+
# Offense count: 2
23+
# Configuration parameters: EnforcedStyle, AllowedGems.
24+
# SupportedStyles: Gemfile, gems.rb, gemspec
25+
Gemspec/DevelopmentDependencies:
26+
Exclude:
27+
- 'morph-cli.gemspec'
28+
29+
# Offense count: 1
30+
Gemspec/DuplicatedAssignment:
31+
Exclude:
32+
- 'morph-cli.gemspec'
33+
34+
# Offense count: 2
35+
# This cop supports safe autocorrection (--autocorrect).
36+
# Configuration parameters: TreatCommentsAsGroupSeparators, ConsiderPunctuation.
37+
Gemspec/OrderedDependencies:
38+
Exclude:
39+
- 'morph-cli.gemspec'
40+
41+
# Offense count: 1
42+
# This cop supports safe autocorrection (--autocorrect).
43+
Gemspec/RequireMFA:
44+
Exclude:
45+
- 'morph-cli.gemspec'
46+
47+
# Offense count: 1
48+
Gemspec/RequiredRubyVersion:
49+
Exclude:
50+
- 'morph-cli.gemspec'
51+
52+
# Offense count: 1
53+
# This cop supports safe autocorrection (--autocorrect).
54+
Layout/EmptyLineAfterMagicComment:
55+
Exclude:
56+
- 'morph-cli.gemspec'
57+
58+
# Offense count: 1
59+
# This cop supports safe autocorrection (--autocorrect).
60+
# Configuration parameters: AllowForAlignment, AllowBeforeTrailingComments, ForceEqualSignAlignment.
61+
Layout/ExtraSpacing:
62+
Exclude:
63+
- 'morph-cli.gemspec'
64+
65+
# Offense count: 8
66+
# This cop supports safe autocorrection (--autocorrect).
67+
# Configuration parameters: AllowMultipleStyles, EnforcedHashRocketStyle, EnforcedColonStyle, EnforcedLastArgumentHashStyle.
68+
# SupportedHashRocketStyles: key, separator, table
69+
# SupportedColonStyles: key, separator, table
70+
# SupportedLastArgumentHashStyles: always_inspect, always_ignore, ignore_implicit, ignore_explicit
71+
Layout/HashAlignment:
72+
Exclude:
73+
- 'lib/morph-cli.rb'
74+
- 'scraper.rb'
75+
76+
# Offense count: 1
77+
# This cop supports safe autocorrection (--autocorrect).
78+
# Configuration parameters: AllowForAlignment, EnforcedStyleForExponentOperator, EnforcedStyleForRationalLiterals.
79+
# SupportedStylesForExponentOperator: space, no_space
80+
# SupportedStylesForRationalLiterals: space, no_space
81+
Layout/SpaceAroundOperators:
82+
Exclude:
83+
- 'morph-cli.gemspec'
84+
85+
# Offense count: 3
86+
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
87+
Metrics/AbcSize:
88+
Max: 46
89+
90+
# Offense count: 1
91+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
92+
# AllowedMethods: refine
93+
Metrics/BlockLength:
94+
Max: 30
95+
96+
# Offense count: 5
97+
# Configuration parameters: CountComments, CountAsOne, AllowedMethods, AllowedPatterns.
98+
Metrics/MethodLength:
99+
Max: 34
100+
101+
# Offense count: 1
102+
# Configuration parameters: CountComments, CountAsOne.
103+
Metrics/ModuleLength:
104+
Max: 112
105+
106+
# Offense count: 1
107+
# Configuration parameters: AllowedMethods, AllowedPatterns.
108+
Metrics/PerceivedComplexity:
109+
Max: 9
110+
111+
# Offense count: 1
112+
# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
113+
# CheckDefinitionPathHierarchyRoots: lib, spec, test, src
114+
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
115+
Naming/FileName:
116+
Exclude:
117+
- 'Rakefile.rb'
118+
- 'lib/morph-cli.rb'
119+
120+
# Offense count: 1
121+
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
122+
# AllowedNames: as, at, by, cc, db, id, if, in, io, ip, of, on, os, pp, to
123+
Naming/MethodParameterName:
124+
Exclude:
125+
- 'scraper.rb'
126+
127+
# Offense count: 4
128+
# Configuration parameters: EnforcedStyle, AllowedIdentifiers, AllowedPatterns, ForbiddenIdentifiers, ForbiddenPatterns.
129+
# SupportedStyles: snake_case, camelCase
130+
Naming/VariableName:
131+
Exclude:
132+
- 'scraper.rb'
133+
134+
# Offense count: 2
135+
# Configuration parameters: AllowedConstants.
136+
Style/Documentation:
137+
Exclude:
138+
- 'spec/**/*'
139+
- 'test/**/*'
140+
- 'bin/morph'
141+
- 'lib/morph-cli.rb'
142+
143+
# Offense count: 1
144+
# This cop supports safe autocorrection (--autocorrect).
145+
Style/Encoding:
146+
Exclude:
147+
- 'morph-cli.gemspec'
148+
149+
# Offense count: 1
150+
# This cop supports safe autocorrection (--autocorrect).
151+
Style/ExpandPathArguments:
152+
Exclude:
153+
- 'morph-cli.gemspec'
154+
155+
# Offense count: 9
156+
# This cop supports unsafe autocorrection (--autocorrect-all).
157+
# Configuration parameters: EnforcedStyle.
158+
# SupportedStyles: always, always_true, never
159+
Style/FrozenStringLiteralComment:
160+
Exclude:
161+
- '**/*.arb'
162+
- 'Gemfile'
163+
- 'Rakefile'
164+
- 'bin/morph'
165+
- 'lib/morph-cli.rb'
166+
- 'lib/morph-cli/version.rb'
167+
- 'morph-cli.gemspec'
168+
- 'scraper.rb'
169+
- 'spec/morph_cli_spec.rb'
170+
- 'spec/spec_helper.rb'
171+
172+
# Offense count: 2
173+
# This cop supports unsafe autocorrection (--autocorrect-all).
174+
# Configuration parameters: EnforcedStyle.
175+
# SupportedStyles: literals, strict
176+
Style/MutableConstant:
177+
Exclude:
178+
- 'lib/morph-cli.rb'
179+
- 'lib/morph-cli/version.rb'
180+
181+
# Offense count: 3
182+
# This cop supports safe autocorrection (--autocorrect).
183+
# Configuration parameters: PreferredDelimiters.
184+
Style/PercentLiteralDelimiters:
185+
Exclude:
186+
- 'morph-cli.gemspec'
187+
188+
# Offense count: 2
189+
# This cop supports safe autocorrection (--autocorrect).
190+
Style/RedundantPercentQ:
191+
Exclude:
192+
- 'morph-cli.gemspec'
193+
194+
# Offense count: 1
195+
# This cop supports safe autocorrection (--autocorrect).
196+
Style/RedundantRegexpCharacterClass:
197+
Exclude:
198+
- 'lib/morph-cli.rb'
199+
200+
# Offense count: 1
201+
# This cop supports unsafe autocorrection (--autocorrect-all).
202+
Style/SlicingWithRange:
203+
Exclude:
204+
- 'scraper.rb'
205+
206+
# Offense count: 1
207+
# This cop supports unsafe autocorrection (--autocorrect-all).
208+
# Configuration parameters: RequireEnglish, EnforcedStyle.
209+
# SupportedStyles: use_perl_names, use_english_names, use_builtin_english_names
210+
Style/SpecialGlobalVars:
211+
Exclude:
212+
- 'morph-cli.gemspec'
213+
214+
# Offense count: 2
215+
# This cop supports unsafe autocorrection (--autocorrect-all).
216+
# Configuration parameters: Mode.
217+
Style/StringConcatenation:
218+
Exclude:
219+
- 'scraper.rb'
220+
221+
# Offense count: 70
222+
# This cop supports safe autocorrection (--autocorrect).
223+
# Configuration parameters: EnforcedStyle, ConsistentQuotesInMultiline.
224+
# SupportedStyles: single_quotes, double_quotes
225+
Style/StringLiterals:
226+
Exclude:
227+
- 'Gemfile'
228+
- 'Rakefile'
229+
- 'bin/morph'
230+
- 'lib/morph-cli.rb'
231+
- 'lib/morph-cli/version.rb'
232+
- 'morph-cli.gemspec'
233+
- 'scraper.rb'
234+
- 'spec/morph_cli_spec.rb'
235+
- 'spec/spec_helper.rb'
236+
237+
# Offense count: 1
238+
# This cop supports unsafe autocorrection (--autocorrect-all).
239+
# Configuration parameters: AllowMethodsWithArguments, AllowedMethods, AllowedPatterns, AllowComments.
240+
# AllowedMethods: define_method
241+
Style/SymbolProc:
242+
Exclude:
243+
- 'scraper.rb'
244+
245+
# Offense count: 3
246+
# This cop supports safe autocorrection (--autocorrect).
247+
# Configuration parameters: AllowHeredoc, AllowURI, AllowQualifiedName, URISchemes, AllowRBSInlineAnnotation, AllowCopDirectives, AllowedPatterns, SplitStrings.
248+
# URISchemes: http, https
249+
Layout/LineLength:
250+
Max: 463

Gemfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,9 @@ source 'https://rubygems.org'
22

33
# Specify your gem's dependencies in morph.gemspec
44
gemspec
5+
6+
group :development, :test do
7+
gem "rspec", "~> 3.0"
8+
gem "rubocop"
9+
gem "bundler-audit"
10+
end

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
[![Gem Version](https://badge.fury.io/rb/morph-cli.png)](http://badge.fury.io/rb/morph-cli)
2+
[![CI](https://github.com/openaustralia/morph-cli/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/openaustralia/morph-cli/actions/workflows/ci.yml)
23

34
# Morph Commandline
45

morph-cli.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
2323
spec.add_dependency 'archive-tar-minitar'
2424
spec.add_dependency "filesize", ">= 0.1"
2525

26-
spec.add_development_dependency "bundler", "~> 1.3"
26+
spec.add_development_dependency "bundler", "~> 2.0"
2727
spec.add_development_dependency "rake"
2828

2929
spec.executables = %w(morph)

0 commit comments

Comments
 (0)