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 +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +4 -0
- data/README.md +29 -1
- data/lib/generators/snap_ci_manual_trigger/rake_tasks_generator.rb +24 -0
- data/lib/generators/snap_ci_manual_trigger/templates/rake_tasks.rb.erb +55 -0
- data/lib/snap_ci_manual_trigger/missing_rake_arguments_error.rb +2 -0
- data/lib/snap_ci_manual_trigger/missing_rake_auth_error.rb +2 -0
- data/lib/snap_ci_manual_trigger/version.rb +1 -1
- data/lib/snap_ci_manual_trigger.rb +11 -0
- data/snap_ci_manual_trigger.gemspec +4 -0
- metadata +39 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 58e71b58cac95103a8c1524e356e1c81d3299b38
|
4
|
+
data.tar.gz: 7eab4a9320362c1ee161fcc2a0f321322ddceeda
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8bc18f5af8fc50311c3a73c562292643547f71eba1d4c37038cb97822cbf41ac332ff49673b82085423a7ed77805e34066de568218274e85d0389c7bfb5b33bc
|
7
|
+
data.tar.gz: 11395bf39a3ce48d9c99498f0e0a090c695a7c9567e19b67851afd7ad45254c4247d5b981434a1afb86b714a4d758096a41fe9706222dda31d3f92feb0fb3d34
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
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
|
-
|
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
|
@@ -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:
|
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
|