cimas 0.1.0 → 0.1.1

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
  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