gemaker 0.3.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.circleci/config.yml +103 -0
- data/.circleci/setup-rubygems.sh +3 -0
- data/.rubocop.yml +72 -614
- data/.ruby-version +1 -1
- data/CHANGELOG.md +33 -0
- data/README.md +16 -1
- data/gemaker.gemspec +9 -15
- data/lib/gemaker.rb +2 -1
- data/lib/gemaker/cli.rb +8 -6
- data/lib/gemaker/commands/add_cli_structure.rb +1 -0
- data/lib/gemaker/commands/add_install_generator.rb +30 -6
- data/lib/gemaker/commands/configure_continuous_integration.rb +23 -0
- data/lib/gemaker/commands/configure_editor_config.rb +10 -0
- data/lib/gemaker/commands/configure_git.rb +13 -2
- data/lib/gemaker/commands/configure_test_env.rb +9 -6
- data/lib/gemaker/commands/create_gem.rb +11 -5
- data/lib/gemaker/commands/customize_engine.rb +31 -4
- data/lib/gemaker/config.rb +1 -9
- data/lib/gemaker/templates/circle_config.yml.erb +103 -0
- data/lib/gemaker/templates/circleci-setup-script.sh +3 -0
- data/lib/gemaker/templates/editorconfig +24 -0
- data/lib/gemaker/templates/engine/Guardfile +6 -9
- data/lib/gemaker/templates/engine/README.md.erb +45 -2
- data/lib/gemaker/templates/engine/development.rb.erb +81 -0
- data/lib/gemaker/templates/engine/engine.rb.erb +1 -1
- data/lib/gemaker/templates/engine/gemspec.erb +9 -5
- data/lib/gemaker/templates/engine/gitignore +10 -0
- data/lib/gemaker/templates/engine/install_generator.rb.erb +0 -2
- data/lib/gemaker/templates/engine/rails_helper.rb.erb +24 -9
- data/lib/gemaker/templates/engine/rubocop.yml.erb +503 -0
- data/lib/gemaker/templates/normal/README.md.erb +14 -0
- data/lib/gemaker/templates/normal/gemspec.erb +9 -5
- data/lib/gemaker/templates/normal/rubocop.yml.erb +496 -0
- data/lib/gemaker/templates/normal/spec_helper.rb.erb +11 -0
- data/lib/gemaker/templates/ruby-version.erb +1 -1
- data/lib/gemaker/util.rb +3 -2
- data/lib/gemaker/version.rb +7 -1
- metadata +65 -50
- data/.coveralls.yml +0 -1
- data/.hound.yml +0 -4
- data/.travis.yml +0 -13
- data/lib/gemaker/commands/add_hound_rules.rb +0 -12
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,39 @@
|
|
2
2
|
All notable changes to this project will be documented in this file.
|
3
3
|
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
### 1.0.0
|
6
|
+
##### Changed
|
7
|
+
|
8
|
+
- Generate gems with Circle CI instead of Travis.
|
9
|
+
- Generate dummy app with Rails 6.
|
10
|
+
- Use Review Dog instead of Hound.
|
11
|
+
- Always create mountable engines.
|
12
|
+
- Move specs out of dummy app.
|
13
|
+
|
14
|
+
### 0.6.0
|
15
|
+
|
16
|
+
##### Changed
|
17
|
+
|
18
|
+
* Replace travis with circleci.
|
19
|
+
|
20
|
+
### v0.5.0
|
21
|
+
|
22
|
+
##### Added
|
23
|
+
|
24
|
+
* Replace factory_girl with factory_bot.
|
25
|
+
* Generate engines with Rails 5.
|
26
|
+
|
27
|
+
### v0.4.0
|
28
|
+
|
29
|
+
##### Added
|
30
|
+
|
31
|
+
* Add command to configure Travis CI.
|
32
|
+
* Change test command to configure coveralls.
|
33
|
+
|
34
|
+
##### Fixed
|
35
|
+
|
36
|
+
* Run engine creation with specific Rails version to avoid unsupported Rails 5 structure.
|
37
|
+
|
5
38
|
### v0.3.0
|
6
39
|
|
7
40
|
##### Added
|
data/README.md
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
-
# Gemaker
|
1
|
+
# Gemaker
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/gemaker.svg)](https://badge.fury.io/rb/gemaker)
|
4
|
+
[![CircleCI](https://circleci.com/gh/platanus/gemaker.svg?style=shield)](https://app.circleci.com/pipelines/github/platanus/gemaker)
|
5
|
+
[![Coverage Status](https://coveralls.io/repos/github/platanus/gemaker/badge.svg)](https://coveralls.io/github/platanus/gemaker)
|
6
|
+
|
2
7
|
Ruby CLI created to build Platanus' gems.
|
3
8
|
|
4
9
|
## Installation
|
@@ -23,6 +28,16 @@ gemaker new my_gem
|
|
23
28
|
4. Push to the branch (`git push origin my-new-feature`)
|
24
29
|
5. Create new Pull Request
|
25
30
|
|
31
|
+
## Publishing
|
32
|
+
|
33
|
+
On master/main branch...
|
34
|
+
|
35
|
+
1. Change `VERSION` in `lib/gemaker/version.rb`.
|
36
|
+
2. Change `Unreleased` title to current version in `CHANGELOG.md`.
|
37
|
+
3. Commit new release. For example: `Releasing v0.1.0`.
|
38
|
+
4. Create tag. For example: `git tag v0.1.0`.
|
39
|
+
5. Push tag. For example: `git push origin v0.1.0`.
|
40
|
+
|
26
41
|
## Credits
|
27
42
|
|
28
43
|
Thank you [contributors](https://github.com/platanus/gemaker/graphs/contributors)!
|
data/gemaker.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# coding: utf-8
|
2
1
|
lib = File.expand_path('../lib', __FILE__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
3
|
require 'gemaker/version'
|
@@ -13,26 +12,21 @@ Gem::Specification.new do |spec|
|
|
13
12
|
spec.description = "Ruby CLI created to build Platanus' gems"
|
14
13
|
spec.homepage = "https://github.com/platanus/gemaker"
|
15
14
|
|
16
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
17
|
-
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
18
|
-
if spec.respond_to?(:metadata)
|
19
|
-
spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
|
20
|
-
else
|
21
|
-
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
22
|
-
end
|
23
|
-
|
24
15
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
25
16
|
spec.bindir = "exe"
|
26
17
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
27
18
|
spec.require_paths = ["lib"]
|
28
19
|
|
29
|
-
spec.add_dependency "
|
30
|
-
spec.add_dependency "commander", "~> 4.4", ">= 4.4.0"
|
31
|
-
spec.add_dependency "activesupport", "~> 4.2", ">= 4.2.6"
|
32
|
-
spec.add_dependency "colorize", "~> 0.7", ">= 0.7.7"
|
20
|
+
spec.add_dependency "activesupport"
|
33
21
|
spec.add_dependency "artii", "~> 2.1", ">= 2.1.1"
|
34
|
-
spec.
|
22
|
+
spec.add_dependency "colorize", "~> 0.7", ">= 0.7.7"
|
23
|
+
spec.add_dependency "commander"
|
24
|
+
spec.add_dependency "power-types"
|
25
|
+
|
26
|
+
spec.add_development_dependency "bundler", "~> 2.2.15"
|
27
|
+
spec.add_development_dependency "coveralls"
|
35
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
36
29
|
spec.add_development_dependency "rspec", "~> 3.0"
|
37
|
-
spec.add_development_dependency "
|
30
|
+
spec.add_development_dependency "rspec_junit_formatter"
|
31
|
+
spec.add_development_dependency "rubocop", "~> 1.9"
|
38
32
|
end
|
data/lib/gemaker.rb
CHANGED
@@ -10,6 +10,7 @@ require "gemaker/commands/base"
|
|
10
10
|
require "gemaker/commands/create_gem"
|
11
11
|
require "gemaker/commands/add_readme"
|
12
12
|
require "gemaker/commands/add_changelog"
|
13
|
+
require "gemaker/commands/configure_editor_config"
|
13
14
|
require "gemaker/commands/customize_gemspec"
|
14
15
|
require "gemaker/commands/add_license"
|
15
16
|
require "gemaker/commands/add_cli_structure"
|
@@ -20,7 +21,7 @@ require "gemaker/commands/customize_engine"
|
|
20
21
|
require "gemaker/commands/customize_rakefile"
|
21
22
|
require "gemaker/commands/customize_main_lib_file"
|
22
23
|
require "gemaker/commands/add_install_generator"
|
23
|
-
require "gemaker/commands/
|
24
|
+
require "gemaker/commands/configure_continuous_integration"
|
24
25
|
|
25
26
|
module Gemaker
|
26
27
|
end
|
data/lib/gemaker/cli.rb
CHANGED
@@ -25,7 +25,7 @@ module Gemaker
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
-
# rubocop:disable Metrics/MethodLength
|
28
|
+
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
|
29
29
|
def fill_config(gem_name, config)
|
30
30
|
config.gem_name = gem_name
|
31
31
|
|
@@ -34,24 +34,26 @@ module Gemaker
|
|
34
34
|
end
|
35
35
|
|
36
36
|
config.human_gem_name = ask(
|
37
|
-
"Enter the human readable version of the name. e.g. \"#{config.human_gem_name}\":"
|
37
|
+
"Enter the human readable version of the name. e.g. \"#{config.human_gem_name}\":"
|
38
|
+
)
|
38
39
|
config.summary = ask("Enter gem's summary: ")
|
39
40
|
config.description = ask("Enter gem's description: ")
|
40
41
|
config.homepage = ask(
|
41
|
-
"Enter gem's homepage. e.g. https://github.com/platanus/#{config.gem_name}: "
|
42
|
+
"Enter gem's homepage. e.g. https://github.com/platanus/#{config.gem_name}: "
|
43
|
+
)
|
42
44
|
config.authors = ask("Enter gem's authors. e.g. Sherlock Holmes,James Moriarty: ")
|
43
45
|
config.emails = ask(
|
44
|
-
"Enter the authors' emails. e.g. sherlock@platan.us,james@platan.us: "
|
46
|
+
"Enter the authors' emails. e.g. sherlock@platan.us,james@platan.us: "
|
47
|
+
)
|
45
48
|
config.engine = agree("Is the gem a Rails engine?")
|
46
49
|
|
47
50
|
if config.engine?
|
48
|
-
config.mountable = agree("Is the engine mountable?")
|
49
51
|
config.installable = agree("Need an installer?")
|
50
52
|
else
|
51
53
|
config.cli = agree("Is it a CLI (Command-line interface)?")
|
52
54
|
end
|
53
55
|
end
|
54
|
-
# rubocop:enable Metrics/MethodLength
|
56
|
+
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize
|
55
57
|
|
56
58
|
def draw_artii(text)
|
57
59
|
a = Artii::Base.new font: 'slant'
|
@@ -3,6 +3,7 @@ module Gemaker
|
|
3
3
|
class AddCliStructure < Gemaker::Cmd::Base
|
4
4
|
def perform
|
5
5
|
return unless @config.cli?
|
6
|
+
|
6
7
|
copy_template("exe", "exe/#{@config.gem_name}", config: @config)
|
7
8
|
copy_template("cli.rb", "lib/#{@config.gem_name}/cli.rb", config: @config)
|
8
9
|
info "Add CLI structure"
|
@@ -3,14 +3,38 @@ module Gemaker
|
|
3
3
|
class AddInstallGenerator < Gemaker::Cmd::Base
|
4
4
|
def in_engine_context
|
5
5
|
return unless @config.installable?
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
copy_template("engine/install_usage",
|
11
|
-
"lib/generators/#{@config.gem_name}/install/USAGE", config: @config)
|
6
|
+
|
7
|
+
copy_initializer
|
8
|
+
copy_install_generator
|
9
|
+
copy_install_usage_file
|
12
10
|
info "Add Installer"
|
13
11
|
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def copy_initializer
|
16
|
+
copy_template(
|
17
|
+
"engine/initializer.rb",
|
18
|
+
"lib/generators/#{@config.gem_name}/install/templates/initializer.rb",
|
19
|
+
config: @config
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
def copy_install_generator
|
24
|
+
copy_template(
|
25
|
+
"engine/install_generator.rb",
|
26
|
+
"lib/generators/#{@config.gem_name}/install/install_generator.rb",
|
27
|
+
config: @config
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def copy_install_usage_file
|
32
|
+
copy_template(
|
33
|
+
"engine/install_usage",
|
34
|
+
"lib/generators/#{@config.gem_name}/install/USAGE",
|
35
|
+
config: @config
|
36
|
+
)
|
37
|
+
end
|
14
38
|
end
|
15
39
|
end
|
16
40
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Gemaker
|
2
|
+
module Cmd
|
3
|
+
class ConfigureContinuousIntegration < Gemaker::Cmd::Base
|
4
|
+
def in_normal_context
|
5
|
+
configure_ci("normal")
|
6
|
+
end
|
7
|
+
|
8
|
+
def in_engine_context
|
9
|
+
configure_ci("engine")
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def configure_ci(tpl_dir)
|
15
|
+
copy_template("#{tpl_dir}/rubocop.yml", ".rubocop.yml", config: @config)
|
16
|
+
create_dir(".circleci")
|
17
|
+
copy_template("circle_config.yml", ".circleci/config.yml", config: @config)
|
18
|
+
copy_file("circleci-setup-script.sh", ".circleci/setup-rubygems.sh")
|
19
|
+
info "Configure CricleCI"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,8 +1,19 @@
|
|
1
1
|
module Gemaker
|
2
2
|
module Cmd
|
3
3
|
class ConfigureGit < Gemaker::Cmd::Base
|
4
|
-
def
|
5
|
-
remove_in_gem(".git")
|
4
|
+
def in_normal_context
|
5
|
+
remove_in_gem(".git")
|
6
|
+
do_initial_commit
|
7
|
+
end
|
8
|
+
|
9
|
+
def in_engine_context
|
10
|
+
copy_file("engine/gitignore", ".gitignore")
|
11
|
+
do_initial_commit
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def do_initial_commit
|
6
17
|
execute_in_gem("git init")
|
7
18
|
execute_in_gem("bundle install")
|
8
19
|
execute_in_gem("git add .")
|
@@ -12,12 +12,15 @@ module Gemaker
|
|
12
12
|
def in_engine_context
|
13
13
|
copy_template("engine/spec_helper.rb", "spec/spec_helper.rb", config: @config)
|
14
14
|
copy_template("engine/rails_helper.rb", "spec/rails_helper.rb", config: @config)
|
15
|
-
copy_template(
|
16
|
-
"
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
copy_template(
|
16
|
+
"engine/test_example.rb",
|
17
|
+
"spec/#{@config.gem_name}_spec.rb",
|
18
|
+
config: @config
|
19
|
+
)
|
20
|
+
create_dir("spec/factories")
|
21
|
+
copy_file("test_helpers.rb", "spec/support/test_helpers.rb")
|
22
|
+
copy_file("image.png", "spec/fixtures/files/image.png")
|
23
|
+
copy_file("video.mp4", "spec/fixtures/files/video.mp4")
|
21
24
|
copy_file("engine/rspec", ".rspec")
|
22
25
|
copy_file("engine/Guardfile", "Guardfile")
|
23
26
|
info "Configure Rspec"
|
@@ -2,10 +2,15 @@ module Gemaker
|
|
2
2
|
module Cmd
|
3
3
|
class CreateGem < Gemaker::Cmd::Base
|
4
4
|
def in_engine_context
|
5
|
-
|
6
|
-
|
7
|
-
"rails
|
8
|
-
|
5
|
+
commands = [
|
6
|
+
"echo \"source 'https://rubygems.org'\" > GemakerGemfile",
|
7
|
+
"echo \"gem 'rails', '~> #{Gemaker::RAILS_VERSION}'\" > GemakerGemfile",
|
8
|
+
"BUNDLE_GEMFILE=GemakerGemfile bundle install",
|
9
|
+
"BUNDLE_GEMFILE=GemakerGemfile bundle exec rails plugin new #{@config.gem_name} -T --mountable --dummy-path=spec/dummy", # rubocop:disable Metrics/LineLength
|
10
|
+
"rm -f GemakerGemfile GemakerGemfile.lock"
|
11
|
+
]
|
12
|
+
|
13
|
+
create_customized_gem(commands.join('; '))
|
9
14
|
end
|
10
15
|
|
11
16
|
def in_normal_context
|
@@ -18,6 +23,7 @@ module Gemaker
|
|
18
23
|
execute(cmd)
|
19
24
|
Gemaker::Cmd::AddReadme.for(config: @config)
|
20
25
|
Gemaker::Cmd::AddChangelog.for(config: @config)
|
26
|
+
Gemaker::Cmd::ConfigureEditorConfig.for(config: @config)
|
21
27
|
Gemaker::Cmd::CustomizeGemspec.for(config: @config)
|
22
28
|
Gemaker::Cmd::AddLicense.for(config: @config)
|
23
29
|
Gemaker::Cmd::AddCliStructure.for(config: @config)
|
@@ -27,7 +33,7 @@ module Gemaker
|
|
27
33
|
Gemaker::Cmd::CustomizeRakefile.for(config: @config)
|
28
34
|
Gemaker::Cmd::CustomizeMainLibFile.for(config: @config)
|
29
35
|
Gemaker::Cmd::AddInstallGenerator.for(config: @config)
|
30
|
-
Gemaker::Cmd::
|
36
|
+
Gemaker::Cmd::ConfigureContinuousIntegration.for(config: @config)
|
31
37
|
Gemaker::Cmd::ConfigureGit.for(config: @config)
|
32
38
|
info("Done!")
|
33
39
|
end
|
@@ -2,12 +2,39 @@ module Gemaker
|
|
2
2
|
module Cmd
|
3
3
|
class CustomizeEngine < Gemaker::Cmd::Base
|
4
4
|
def in_engine_context
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
replace_development_file
|
6
|
+
replace_engine_file
|
7
|
+
add_example_class
|
8
|
+
|
9
9
|
info "Customize engine.rb"
|
10
10
|
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def replace_development_file
|
15
|
+
remove_in_gem("spec/dummy/config/environments/development.rb")
|
16
|
+
copy_template(
|
17
|
+
"engine/development.rb",
|
18
|
+
"spec/dummy/config/environments/development.rb",
|
19
|
+
config: @config
|
20
|
+
)
|
21
|
+
end
|
22
|
+
|
23
|
+
def replace_engine_file
|
24
|
+
copy_template(
|
25
|
+
"engine/engine.rb",
|
26
|
+
"lib/#{@config.gem_name}/engine.rb",
|
27
|
+
config: @config
|
28
|
+
)
|
29
|
+
end
|
30
|
+
|
31
|
+
def add_example_class
|
32
|
+
copy_template(
|
33
|
+
"engine/example_class.rb",
|
34
|
+
"lib/#{@config.gem_name}/example_class.rb",
|
35
|
+
config: @config
|
36
|
+
)
|
37
|
+
end
|
11
38
|
end
|
12
39
|
end
|
13
40
|
end
|
data/lib/gemaker/config.rb
CHANGED
@@ -2,7 +2,7 @@ module Gemaker
|
|
2
2
|
class Config
|
3
3
|
RUBY_VERSION = 2.3
|
4
4
|
|
5
|
-
attr_accessor :gem_name, :summary, :engine, :cli, :
|
5
|
+
attr_accessor :gem_name, :summary, :engine, :cli, :installable
|
6
6
|
attr_reader :authors, :emails
|
7
7
|
attr_writer :human_gem_name, :description, :homepage
|
8
8
|
|
@@ -45,18 +45,10 @@ module Gemaker
|
|
45
45
|
!!cli
|
46
46
|
end
|
47
47
|
|
48
|
-
def mountable?
|
49
|
-
!!mountable
|
50
|
-
end
|
51
|
-
|
52
48
|
def installable?
|
53
49
|
!!installable
|
54
50
|
end
|
55
51
|
|
56
|
-
def ruby_version
|
57
|
-
RUBY_VERSION
|
58
|
-
end
|
59
|
-
|
60
52
|
private
|
61
53
|
|
62
54
|
def string_to_array(value)
|
@@ -0,0 +1,103 @@
|
|
1
|
+
version: 2.1
|
2
|
+
|
3
|
+
env-vars: &env-vars
|
4
|
+
RAILS_ENV: test
|
5
|
+
NODE_ENV: test
|
6
|
+
BUNDLE_PATH: vendor/bundle
|
7
|
+
|
8
|
+
orbs:
|
9
|
+
ruby: circleci/ruby@0.1.2
|
10
|
+
|
11
|
+
executors:
|
12
|
+
main-executor:
|
13
|
+
parameters:
|
14
|
+
ruby-version:
|
15
|
+
description: "Ruby version"
|
16
|
+
default: "<%= Gemaker::RUBY_VERSION %>"
|
17
|
+
type: string
|
18
|
+
docker:
|
19
|
+
- image: circleci/ruby:<<parameters.ruby-version>>-node
|
20
|
+
environment: *env-vars
|
21
|
+
|
22
|
+
commands:
|
23
|
+
setup:
|
24
|
+
description: checkout code and install dependencies
|
25
|
+
steps:
|
26
|
+
- checkout
|
27
|
+
- run:
|
28
|
+
name: Install bundle dependencies
|
29
|
+
command: |
|
30
|
+
BUNDLER_VERSION=$(cat Gemfile.lock | tail -1 | tr -d " ")
|
31
|
+
gem install bundler:$BUNDLER_VERSION
|
32
|
+
bundle _$(echo $BUNDLER_VERSION)_ install
|
33
|
+
|
34
|
+
jobs:
|
35
|
+
lint:
|
36
|
+
executor: main-executor
|
37
|
+
steps:
|
38
|
+
- setup
|
39
|
+
- run:
|
40
|
+
name: Install reviewdog
|
41
|
+
command: |
|
42
|
+
curl -sfL https://raw.githubusercontent.com/reviewdog/reviewdog/master/install.sh | sh -s -- -b ./bin
|
43
|
+
- run:
|
44
|
+
name: Get files to lint
|
45
|
+
command: |
|
46
|
+
mkdir tmp
|
47
|
+
git diff origin/master --name-only --diff-filter=d > tmp/files_to_lint
|
48
|
+
- run:
|
49
|
+
name: Run rubocop
|
50
|
+
shell: /bin/bash
|
51
|
+
command: |
|
52
|
+
cat tmp/files_to_lint | grep -E '.+\.(rb)$' | xargs bundle exec rubocop --force-exclusion \
|
53
|
+
| ./bin/reviewdog -reporter=github-pr-review -f=rubocop
|
54
|
+
test:
|
55
|
+
parameters:
|
56
|
+
ruby-version:
|
57
|
+
description: "Ruby version"
|
58
|
+
default: "<%= Gemaker::RUBY_VERSION %>"
|
59
|
+
type: string
|
60
|
+
executor:
|
61
|
+
name: main-executor
|
62
|
+
ruby-version: <<parameters.ruby-version>>
|
63
|
+
steps:
|
64
|
+
- setup
|
65
|
+
- run:
|
66
|
+
name: Run Tests
|
67
|
+
command: |
|
68
|
+
RSPEC_JUNIT_ARGS="-r rspec_junit_formatter -f RspecJunitFormatter -o test_results/rspec.xml"
|
69
|
+
RSPEC_FORMAT_ARGS="-f progress --no-color -p 10"
|
70
|
+
bundle exec rspec ./spec $RSPEC_FORMAT_ARGS $RSPEC_JUNIT_ARGS
|
71
|
+
- store_test_results:
|
72
|
+
path: test_results
|
73
|
+
deploy:
|
74
|
+
executor: main-executor
|
75
|
+
steps:
|
76
|
+
- setup
|
77
|
+
- run:
|
78
|
+
name: Setup rubygems
|
79
|
+
command: bash .circleci/setup-rubygems.sh
|
80
|
+
- run:
|
81
|
+
name: Publish to rubygems
|
82
|
+
command: |
|
83
|
+
gem build active_job_log.gemspec
|
84
|
+
version_tag=$(git describe --tags)
|
85
|
+
gem push active_job_log-${version_tag#v}.gem
|
86
|
+
|
87
|
+
workflows:
|
88
|
+
version: 2
|
89
|
+
main:
|
90
|
+
jobs:
|
91
|
+
- lint:
|
92
|
+
context: org-global
|
93
|
+
- test:
|
94
|
+
matrix:
|
95
|
+
parameters:
|
96
|
+
ruby-version: <%= Gemaker::RUBY_VERSIONS %>
|
97
|
+
- deploy:
|
98
|
+
context: org-global
|
99
|
+
filters:
|
100
|
+
tags:
|
101
|
+
only: /.*/
|
102
|
+
branches:
|
103
|
+
ignore: /.*/
|