cimas 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 75ee4551ad4b87e20cefd3e07d17b35b705c7a1913120b64c6f7025f584889c6
4
- data.tar.gz: 0f215697f7ec882570b362295a4bf61a995ba942069933fe115e8db9625f6755
3
+ metadata.gz: 96ff28c48d78e8043cabfbd44923abe5601563073ced3a64ed421beef5c97be7
4
+ data.tar.gz: 570e80bff89e510e3057dfc570b7a593a98ad8cf2a6dd3401e716296d2d04ed4
5
5
  SHA512:
6
- metadata.gz: b0e666111cc035476b234f1727811776966508ebef5c4358350097841aa3dad55ac7e757a6ac19bd9161f396277305a64cd5c5c127466f5d7a97b33722f74239
7
- data.tar.gz: 55469b83a7561851172d430451379ab87ff5c467034c1562e513ecbd7f34a47874e9178837c39c6c14c0ac1169ef62134733a5d13ea91074b6a8398a4ad1b222
6
+ metadata.gz: 195e11ba4eb52f1e38b332131590c3501652d4597f33e957d2632fa3d1194f1421c452da33a02fb34c64611f9793b32db206175d4f9fd100cd690df0033ee77b
7
+ data.tar.gz: 9cfb9aeaaed12894e646177357227e87491a2069e00eac8b1828119a352d83dc527c306d0000c18a484733e540996048b540b7c4368ef2fa9b301361dd08aa22
data/README.adoc CHANGED
@@ -1,5 +1,10 @@
1
1
  = Cimas ("`Continuous integration master`")
2
2
 
3
+ image:https://img.shields.io/gem/v/cimas.svg["Gem Version", link="https://rubygems.org/gems/cimas"]
4
+ image:https://codeclimate.com/github/metanorma/cimas/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/cimas"]
5
+ image:https://img.shields.io/github/issues-pr-raw/metanorma/cimas.svg["Pull Requests", link="https://github.com/metanorma/cimas/pulls"]
6
+ image:https://img.shields.io/github/commits-since/metanorma/cimas/latest.svg["Commits since latest",link="https://github.com/metanorma/cimas/releases"]
7
+
3
8
  == Purpose
4
9
 
5
10
  Cimas handles synchronizing CI configuration across multiple repositories.
@@ -43,6 +48,7 @@ gem install cimas
43
48
  Or, by specifying it in your `Gemfile` if you're using Bundler.
44
49
 
45
50
 
51
+
46
52
  == Concepts
47
53
 
48
54
  CI configuration file:: file to configure CI behavior of a repository
@@ -52,9 +58,36 @@ Cimas working area:: local directory where Cimas works within
52
58
  Cimas managed repository:: repository with CI configuration managed by Cimas
53
59
 
54
60
 
61
+ == Demonstration
62
+
63
+ The https://github.com/metanorma/metanorma-build-scripts[`metanorma-build-scripts`]
64
+ repository contains Cimas configuration under `cimas-config/`
65
+ for the https://github.com/metanorma[Metanorma] repositories.
66
+
67
+ * `cimas-config/`: the CI master configuration directory
68
+ * `cimas-config/cimas.yml`: the Cimas configuration file
69
+
70
+ Have a look to see how it's being used!
71
+
72
+
73
+ == Prerequisites
74
+
75
+ === Setting up the CI configuration master directory
76
+
77
+ You need to first create a "`CI configuration master directory`" to
78
+ contain master files for CI configuration.
79
+ It is advisable to store the directory in Git for better version management.
80
+
81
+ For example, with https://github.com/metanorma[Metanorma] repositories,
82
+ the CI master configuration directory is placed in the
83
+ https://github.com/metanorma/metanorma-build-scripts[`metanorma-build-scripts`]
84
+ repository under `cimas-config/`.
85
+
86
+
55
87
 
56
88
  == Usage
57
89
 
90
+
58
91
  === Command line
59
92
 
60
93
  Cimas works through the `cimas` executable. `cimas` provides the following sub-commands.
@@ -202,10 +235,11 @@ by adding commits and branches.
202
235
 
203
236
  ==== `cimas open-prs`
204
237
 
205
- The `push` sub-command:
238
+ The `open-prs` sub-command:
206
239
 
207
- * commits the changes made by the `sync` sub-command in a new branch;
208
- * pushes the new branch to the first Git remote.
240
+ * opens Pull Requests for all the specified repositories of the given branch;
241
+ * creates Pull Request Review Requests for the created Pull Requests (if `reviewers` are set in `cimas.yaml:settings` or via the `-w` option);
242
+ * assigns the created Pull Requests to assignees (if `assignees` are set in `cimas.yaml:settings` or via the `-a` option).
209
243
 
210
244
  Since this command depends on GitHub privileged functionality,
211
245
  you must supply your GitHub Personal Access Token (PAT)
@@ -222,6 +256,8 @@ cimas open-prs -f {cimas-config-file} -r {cimas-working-area} \
222
256
  # cimas open-prs -f cimas.yml -r ~/src/cimas-wd \
223
257
  # -b my-new-ci-branch \
224
258
  # -m 'My pull-request message' \
259
+ # [-w {reviewer1,reviewer2...}] \
260
+ # [-a {assignee1,assignee2...}] \
225
261
  # [-g {group1,group2,...}]
226
262
  ----
227
263
 
@@ -411,46 +447,6 @@ groups:
411
447
  ----
412
448
 
413
449
 
414
- === Setting up the CI configuration master directory
415
-
416
- You need to first create the "`CIM configuration directory`".
417
-
418
- Typically you'd create one in Git for better version management.
419
-
420
- For example, with https://github.com/metanorma[Metanorma] repositories,
421
- the CIM configuration directory is placed in the https://github.com/metanorma/metanorma-build-scripts[`metanorma-build-scripts`]
422
- repository.
423
-
424
-
425
- === Setting up the local CIM working area
426
-
427
- CIM requires a local working area to work with managed repositories,
428
- using Git's pull and push functionalities.
429
-
430
- This only _needs to be done once_ (locally), then you can reuse
431
- this working area for future CI configuration updates.
432
-
433
- // `$mn-root`
434
-
435
- You need to create the CIM working area
436
-
437
- Checkout all repositories
438
-
439
- [source,sh]
440
- ----
441
- # suppose the CIM working area is called $CIM_CONFIG_WD
442
- mkdir $CIM_CONFIG_WD
443
- cd $CIM_CONFIG_WD
444
- repo init -u $CIM_CONFIG_REPO
445
- repo sync
446
- git multi checkout master
447
- echo 'metanorma-build-scripts' > .multigit_ignore
448
- git clone https://github.com/metanorma/cimas.git
449
- cd cimas
450
- ----
451
-
452
-
453
-
454
450
 
455
451
  == Development
456
452
 
@@ -108,7 +108,10 @@ module Cimas
108
108
  filtered_repo_names.each do |repo_name|
109
109
 
110
110
  repo = repo_by_name(repo_name)
111
- # puts "repo_name #{repo_name} #{repo.inspect}"
111
+ if repo.nil?
112
+ puts "[WARNING] #{repo_name} not configured, skipping."
113
+ next
114
+ end
112
115
 
113
116
  branch = repo['branch']
114
117
  files = repo['files']
@@ -155,7 +158,10 @@ module Cimas
155
158
  filtered_repo_names.each do |repo_name|
156
159
 
157
160
  repo = repo_by_name(repo_name)
158
- # puts "repo_name #{repo_name} #{repo.inspect}"
161
+ if repo.nil?
162
+ puts "[WARNING] #{repo_name} not configured, skipping."
163
+ next
164
+ end
159
165
 
160
166
  branch = repo['branch']
161
167
  files = repo['files']
@@ -250,6 +256,11 @@ module Cimas
250
256
  filtered_repo_names.each do |repo_name|
251
257
 
252
258
  repo = repo_by_name(repo_name)
259
+ if repo.nil?
260
+ puts "[WARNING] #{repo_name} not configured, skipping."
261
+ next
262
+ end
263
+
253
264
  branch = repo['branch']
254
265
  files = repo['files']
255
266
 
@@ -311,6 +322,10 @@ module Cimas
311
322
 
312
323
  filtered_repo_names.each do |repo_name|
313
324
  repo = repo_by_name(repo_name)
325
+ if repo.nil?
326
+ puts "[WARNING] #{repo_name} not configured, skipping."
327
+ next
328
+ end
314
329
 
315
330
  repo_dir = File.join(repos_path, repo_name)
316
331
  unless File.exist?(repo_dir)
@@ -359,6 +374,10 @@ module Cimas
359
374
 
360
375
  filtered_repo_names.each do |repo_name|
361
376
  repo = repo_by_name(repo_name)
377
+ if repo.nil?
378
+ puts "[WARNING] #{repo_name} not configured, skipping."
379
+ next
380
+ end
362
381
 
363
382
  repo_dir = File.join(repos_path, repo_name)
364
383
  unless File.exist?(repo_dir)
data/lib/cimas/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Cimas
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cimas
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-02-10 00:00:00.000000000 Z
11
+ date: 2020-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: travis