File tree Expand file tree Collapse file tree 4 files changed +76
-16
lines changed
Expand file tree Collapse file tree 4 files changed +76
-16
lines changed Original file line number Diff line number Diff line change @@ -69,6 +69,26 @@ Following tasks are generated
6969* ` rake go5:testrace `
7070* ` rake go5:fmt `
7171
72+ #### Example (Add additional tasks)
73+ ``` ruby
74+ # Rakefile
75+ require " go_gem/rake_task"
76+
77+ t = GoGem ::RakeTask .new (" gem_name" )
78+
79+ namespace :go do
80+ desc " Run golangci-lint"
81+ task :lint do
82+ t.within_target_dir do
83+ sh " which golangci-lint" do |ok , _ |
84+ raise " golangci-lint isn't installed. See. https://golangci-lint.run/welcome/install/" unless ok
85+ end
86+ sh GoGem ::RakeTask .build_env_vars, " golangci-lint run"
87+ end
88+ end
89+ end
90+ ```
91+
7292#### Available configurations
7393* ` task_namespace ` : task namespace (default: ` :go ` )
7494* ` go_bin_path ` : path to go binary (default: ` "go" ` )
Original file line number Diff line number Diff line change @@ -22,6 +22,24 @@ module GoGem
2222 # t.go_test_args = "-mod=readonly"
2323 # t.target_dir = "/dir/to/go-mod/"
2424 # end
25+ #
26+ # @example additional tasks
27+ # # Rakefile
28+ # require "go_gem/rake_task"
29+ #
30+ # t = GoGem::RakeTask.new("gem_name")
31+ #
32+ # namespace :go do
33+ # desc "Run golangci-lint"
34+ # task :lint do
35+ # t.within_target_dir do
36+ # sh "which golangci-lint" do |ok, _|
37+ # raise "golangci-lint isn't installed. See. https://golangci-lint.run/welcome/install/" unless ok
38+ # end
39+ # sh GoGem::RakeTask.build_env_vars, "golangci-lint run"
40+ # end
41+ # end
42+ # end
2543 class RakeTask < ::Rake ::TaskLib
2644 DEFAULT_TASK_NAMESPACE = :go
2745
@@ -110,6 +128,18 @@ def self.build_env_vars
110128 }
111129 end
112130
131+ # @yield
132+ def within_target_dir
133+ Dir . chdir ( target_dir ) do # rubocop:disable Style/ExplicitBlockArgument
134+ yield
135+ end
136+ end
137+
138+ # @return [String]
139+ def ext_dir
140+ File . join ( "ext" , gem_name )
141+ end
142+
113143 private
114144
115145 def define_go_test_task
@@ -138,17 +168,5 @@ def define_go_fmt_task
138168 end
139169 end
140170 end
141-
142- # @yield
143- def within_target_dir
144- Dir . chdir ( target_dir ) do # rubocop:disable Style/ExplicitBlockArgument
145- yield
146- end
147- end
148-
149- # @return [String]
150- def ext_dir
151- File . join ( "ext" , gem_name )
152- end
153171 end
154172end
Original file line number Diff line number Diff line change 1717 it { should be_task_defined ( "go:test" ) }
1818 it { should be_task_defined ( "go:testrace" ) }
1919 it { should be_task_defined ( "go:fmt" ) }
20+
21+ describe "Add additional tasks" do
22+ include Rake ::DSL
23+
24+ subject do
25+ t = GoGem ::RakeTask . new ( gem_name )
26+
27+ namespace :go do
28+ task :test2 do
29+ t . within_target_dir do
30+ sh "go test"
31+ end
32+ end
33+ end
34+
35+ Rake ::Task
36+ end
37+
38+ it { should be_task_defined ( "go:test2" ) }
39+ end
2040 end
2141
2242 context "with params" do
Original file line number Diff line number Diff line change 11# frozen_string_literal: true
22
3- GoGem ::RakeTask . new ( "" ) do |t |
3+ t = GoGem ::RakeTask . new ( "" ) do |t |
44 t . target_dir = repo_root
55 t . go_test_args = "#{ GoGem ::RakeTask ::DEFAULT_GO_TEST_ARGS } #{ ENV [ "GO_TEST_ARGS" ] } "
66end
77
88namespace :go do
99 desc "Run golangci-lint"
1010 task :lint do
11- sh "which golangci-lint" do |ok , _ |
12- raise "golangci-lint isn't installed. See. https://golangci-lint.run/welcome/install/" unless ok
11+ t . within_target_dir do
12+ sh "which golangci-lint" do |ok , _ |
13+ raise "golangci-lint isn't installed. See. https://golangci-lint.run/welcome/install/" unless ok
14+ end
15+ sh GoGem ::RakeTask . build_env_vars , "golangci-lint run"
1316 end
14- sh GoGem ::RakeTask . build_env_vars , "golangci-lint run"
1517 end
1618
1719 desc "Run all build tasks in go"
You can’t perform that action at this time.
0 commit comments