snap_ci_manual_trigger 0.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c5aa2cc6e0dd62b83a69a55d927fb364e505a361
4
- data.tar.gz: 3400261f1f6f75c8dd6bd2d518d19bcd0a64967c
3
+ metadata.gz: 58e71b58cac95103a8c1524e356e1c81d3299b38
4
+ data.tar.gz: 7eab4a9320362c1ee161fcc2a0f321322ddceeda
5
5
  SHA512:
6
- metadata.gz: 5776d5deb58c6144d6467806daa2067a2b58f485af11e07f1aa70703778aa7479f3ab034705b9a6ac19b54bee9ae738fe14e373df19d7d7322ba44fc4dc5f6c5
7
- data.tar.gz: d3632c1ba6173bbee18a5ba5eaa18c33dc6bc8967e9373ced989005a6131d4f0bf5b95dd87669c85c1a307510e2df28ed9d8a6d2e94be99bceb09f4b0e1ce772
6
+ metadata.gz: 8bc18f5af8fc50311c3a73c562292643547f71eba1d4c37038cb97822cbf41ac332ff49673b82085423a7ed77805e34066de568218274e85d0389c7bfb5b33bc
7
+ data.tar.gz: 11395bf39a3ce48d9c99498f0e0a090c695a7c9567e19b67851afd7ad45254c4247d5b981434a1afb86b714a4d758096a41fe9706222dda31d3f92feb0fb3d34
data/.gitignore CHANGED
@@ -7,3 +7,4 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ /spec/lib/tmp/*
data/.travis.yml CHANGED
@@ -3,6 +3,10 @@ rvm:
3
3
  - 2.1.2
4
4
  before_install: gem install bundler -v 1.10.5
5
5
 
6
+ addons:
7
+ code_climate:
8
+ repo_token: 3fc20ac63456f30ae0b08dcf864b1b775a70f12380a0ee281d33a654e35f0a70
9
+
6
10
  script: 'bundle exec rake spec'
7
11
 
8
12
  notifications:
data/README.md CHANGED
@@ -52,7 +52,28 @@ running_pipeline_url = service.manual_stage_on_new_pipeline 'Deploy'
52
52
 
53
53
  ### Generate tasks
54
54
 
55
- TODO: generate rake tasks for quick setup of project/repo/branch, using ENV variables for Auth and overrides.
55
+ This gem adds a generator to create specific rake tasks that will make things easier.
56
+
57
+ We invoke the generator like this:
58
+
59
+ ```shell
60
+ rails generate snap_ci_manual_trigger:rake_tasks my-org my-repo
61
+ ```
62
+
63
+ And it will create a rake task for calling `manual_stage_on_new_pipeline` there. It will be used like this:
64
+
65
+ ```shell
66
+ # this will call for the 'Deploy' stage in a new pipeline in my-org/my-repo in branch 'master'
67
+ rake snap_ci:my-org_my-repo[Deploy]
68
+
69
+ # this will call for the 'Deploy' stage in a new pipeline in my-org/my-repo in branch 'other_branch'
70
+ rake snap_ci:my-org_my-repo[Deploy,other_branch]
71
+ ```
72
+
73
+ It reads the credentials from ENV (required):
74
+
75
+ - `SNAP_CI_USER`: Snap-CI username
76
+ - `SNAP_CI_API_KEY`: Snap-CI API Key
56
77
 
57
78
  ## Development
58
79
 
@@ -64,3 +85,10 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
64
85
 
65
86
  Bug reports and pull requests are welcome on GitHub at https://github.com/artirix/snap_ci_manual_trigger.
66
87
 
88
+
89
+ ## CHANGES
90
+
91
+ ### v.1.0.0
92
+
93
+ - Generators added
94
+ - major version bump since we now require railties, which could be a breaking change
@@ -0,0 +1,24 @@
1
+ require 'rails/generators/base'
2
+
3
+ module SnapCiManualTrigger
4
+ module Generators
5
+ class RakeTasksGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ desc <<-DESC.strip_heredoc
9
+ Creates rake tasks for the given owner/repository pair (will generate file in "lib/tasks/snap_ci/OWNER_REPOSITORY.rake")
10
+
11
+ For example:
12
+ rails generate snap_ci_manual_trigger:rake_tasks my-org my-repo
13
+
14
+ DESC
15
+
16
+ argument :owner, required: true, desc: 'The owner in Snap-CI'
17
+ argument :repository, required: true, desc: 'The repository in Snap-CI'
18
+
19
+ def create_tasks
20
+ template 'rake_tasks.rb.erb', "lib/tasks/snap_ci/#{owner}_#{repository}.rake"
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,55 @@
1
+ namespace :snap_ci do
2
+ desc <<-DESC.strip_heredoc
3
+ executes #manual_stage_on_new_pipeline using <%= owner.inspect %> as owner and <%= repository.inspect %> as repository
4
+
5
+ example:
6
+ rake <%= owner %>_<%= repository %>:manual_stage_on_new_pipeline[Deploy]
7
+
8
+ if you want a different branch (master by default) then add a second argument
9
+
10
+ example:
11
+ rake <%= owner %>_<%= repository %>:manual_stage_on_new_pipeline[Deploy,my_branch]
12
+
13
+ DESC
14
+
15
+ task :'<%= owner %>_<%= repository %>', [:stage, :branch_name] => [:environment] do |t, args|
16
+ args.with_defaults branch_name: 'master'
17
+
18
+ owner = '<%= owner %>'
19
+ repository = '<%= repository %>'
20
+ stage = args[:stage]
21
+ branch_name = args[:branch_name]
22
+ user = ENV['SNAP_CI_USER']
23
+ api_key = ENV['SNAP_CI_API_KEY']
24
+
25
+ if stage.blank?
26
+ raise SnapCiManualTrigger::MissingRakeArgumentsError,
27
+ 'missing stage!'
28
+ end
29
+
30
+ if branch_name.blank?
31
+ raise SnapCiManualTrigger::MissingRakeArgumentsError,
32
+ 'missing branch_name!'
33
+ end
34
+
35
+ if user.blank?
36
+ raise SnapCiManualTrigger::MissingRakeAuthError,
37
+ 'missing snap CI User! use ENV variable SNAP_CI_USER'
38
+ end
39
+
40
+ if api_key.blank?
41
+ raise SnapCiManualTrigger::MissingRakeAuthError,
42
+ 'missing snap CI API Key! use ENV variable SNAP_CI_API_KEY'
43
+ end
44
+
45
+ service = SnapCiManualTrigger.for user: user,
46
+ api_key: api_key,
47
+ owner: owner,
48
+ repository: repository,
49
+ branch_name: branch_name
50
+
51
+ url = service.manual_stage_on_new_pipeline stage
52
+
53
+ puts "Stage #{stage} called. URL in SnapCI: #{url}"
54
+ end
55
+ end
@@ -0,0 +1,2 @@
1
+ class SnapCiManualTrigger::MissingRakeArgumentsError < StandardError
2
+ end
@@ -0,0 +1,2 @@
1
+ class SnapCiManualTrigger::MissingRakeAuthError < StandardError
2
+ end
@@ -1,3 +1,3 @@
1
1
  module SnapCiManualTrigger
2
- VERSION = '0.1.0'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -8,6 +8,17 @@ require 'snap_ci_manual_trigger/invalid_credentials_error'
8
8
  require 'snap_ci_manual_trigger/invalid_resource_error'
9
9
  require 'snap_ci_manual_trigger/service'
10
10
 
11
+
12
+ # GENERATORS
13
+
14
+ require 'thor'
15
+ require 'rails/generators'
16
+ require 'rails/generators/actions'
17
+
18
+ require 'generators/snap_ci_manual_trigger/rake_tasks_generator'
19
+ require 'snap_ci_manual_trigger/missing_rake_arguments_error'
20
+ require 'snap_ci_manual_trigger/missing_rake_auth_error'
21
+
11
22
  module SnapCiManualTrigger
12
23
  DEFAULT_BRANCH_NAME = 'master'.freeze
13
24
 
@@ -21,8 +21,12 @@ Gem::Specification.new do |spec|
21
21
  spec.add_dependency 'faraday'
22
22
  spec.add_dependency 'oj'
23
23
  spec.add_dependency 'oj_mimic_json'
24
+
25
+ spec.add_dependency 'railties', '>= 3.2', '< 5' # for the generators
26
+
24
27
  spec.add_development_dependency 'bundler', '~> 1.10'
25
28
  spec.add_development_dependency 'rake', '~> 10.0'
26
29
  spec.add_development_dependency 'rspec'
27
30
  spec.add_development_dependency 'stub_env'
31
+ spec.add_development_dependency 'generator_spec'
28
32
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snap_ci_manual_trigger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo Turiño
@@ -66,6 +66,26 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: railties
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '3.2'
76
+ - - "<"
77
+ - !ruby/object:Gem::Version
78
+ version: '5'
79
+ type: :runtime
80
+ prerelease: false
81
+ version_requirements: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '3.2'
86
+ - - "<"
87
+ - !ruby/object:Gem::Version
88
+ version: '5'
69
89
  - !ruby/object:Gem::Dependency
70
90
  name: bundler
71
91
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +142,20 @@ dependencies:
122
142
  - - ">="
123
143
  - !ruby/object:Gem::Version
124
144
  version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: generator_spec
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
125
159
  description:
126
160
  email:
127
161
  - eturino@eturino.com
@@ -137,9 +171,13 @@ files:
137
171
  - Rakefile
138
172
  - bin/console
139
173
  - bin/setup
174
+ - lib/generators/snap_ci_manual_trigger/rake_tasks_generator.rb
175
+ - lib/generators/snap_ci_manual_trigger/templates/rake_tasks.rb.erb
140
176
  - lib/snap_ci_manual_trigger.rb
141
177
  - lib/snap_ci_manual_trigger/invalid_credentials_error.rb
142
178
  - lib/snap_ci_manual_trigger/invalid_resource_error.rb
179
+ - lib/snap_ci_manual_trigger/missing_rake_arguments_error.rb
180
+ - lib/snap_ci_manual_trigger/missing_rake_auth_error.rb
143
181
  - lib/snap_ci_manual_trigger/service.rb
144
182
  - lib/snap_ci_manual_trigger/version.rb
145
183
  - snap_ci_manual_trigger.gemspec