roro 0.1.1 → 0.1.3

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
- SHA1:
3
- metadata.gz: 8785a69852a94916710e3a3e11735e850ca39549
4
- data.tar.gz: b26a42ce7df419812da00458b851b3e7877b3ccd
2
+ SHA256:
3
+ metadata.gz: e3d068251958b75df2f13517e4b317da0a97d1b5f42e6e5fc1f15b9baae4c041
4
+ data.tar.gz: 060b40161e644e79c332912f8cb1bbda35833814177c42edd2052ed4224cf181
5
5
  SHA512:
6
- metadata.gz: 545508ba70759f7d51e93c17f22e7c85b6c05353051afa3c2d7bbef3856606853c6b25247fbfbdfcbaac2cb1a2e60163a4b989dcefa12bfad4702b198a50a968
7
- data.tar.gz: 3b323886a568f6ae9e18ea7e8ad8f556584d73223600b8ed2ce05dbcd73bb3d66e9c5d9fe80ef440688756fa68e9b1802843fa59d6567f79bcee93239d1616f8
6
+ metadata.gz: f8f383bbf9a5358045323d200ce96c6b3d04045f7534c8fa33352d98d729ded80150b38fed00eb8a5404a4154d6fa872559ab790d48c784b3bb09380085b0e0c
7
+ data.tar.gz: 70e9dd8395b2b5c11ce0bfb34f4a55cacca1815e762ebbd8c22e7218fb5fed1dbd196a2c001260098028e22d1cbf4b6a0111a5a8513e9428357c6c5b509d7b60
data/.circleci/config.yml CHANGED
@@ -4,22 +4,35 @@ defaults: &defaults
4
4
  version: 2
5
5
 
6
6
  jobs:
7
+
7
8
  build:
9
+ machine: true
10
+ steps:
11
+ - checkout
12
+
13
+ test:
8
14
  docker:
9
15
  - image: circleci/ruby:2.5.3
10
16
  steps:
11
17
  - checkout
18
+ - setup_remote_docker
19
+ - run: gem install bundler
20
+ - run: bundle
21
+ - run: rake install
22
+ - run: mkdir tmp
23
+ - run: docker-compose up app
12
24
 
13
- test:
25
+ test_all:
14
26
  docker:
15
27
  - image: circleci/ruby:2.5.3
16
28
  steps:
17
29
  - checkout
30
+ - setup_remote_docker
18
31
  - run: gem install bundler
19
32
  - run: bundle
20
33
  - run: rake install
21
34
  - run: mkdir tmp
22
- - run: rake test
35
+ - run: docker-compose up
23
36
 
24
37
  build-greenfield:
25
38
  machine: true
@@ -56,10 +69,12 @@ jobs:
56
69
  curl -Is localhost:3000 | head -n 1
57
70
 
58
71
  release:
59
- machine: true
72
+ docker:
73
+ - image: circleci/ruby:2.5.3
60
74
  steps:
61
75
  - checkout
62
- - run: printenv
76
+ - setup_remote_docker
77
+ - run: gem install bundler
63
78
  - run: bundle
64
79
  - run: rake install
65
80
  - run: roro expose
@@ -77,21 +92,29 @@ workflows:
77
92
  - test:
78
93
  filters:
79
94
  branches:
80
- ignore:
81
- - /build-.*/
82
- - release
95
+ only:
96
+ - /feature-.*/
83
97
  - build-greenfield:
84
98
  filters:
85
99
  branches:
86
100
  only:
87
101
  - build-greenfield
102
+ - development
88
103
  - master
89
104
  - build-rollon:
90
105
  filters:
91
106
  branches:
92
107
  only:
93
108
  - build-rollon
109
+ - development
94
110
  - master
111
+ - test_all:
112
+ filters:
113
+ branches:
114
+ only:
115
+ - development
116
+ - master
117
+
95
118
  - release:
96
119
  filters:
97
120
  branches:
data/.gitignore CHANGED
@@ -5,10 +5,10 @@
5
5
  /doc/
6
6
  /pkg/
7
7
  /spec/reports/
8
- tmp/
8
+ tmp/**/*
9
9
  !tmp/.keep
10
10
  greenfield/**/*
11
11
  .byebug_history
12
12
 
13
13
  docker/**/*.env
14
- docker/**/*.key
14
+ docker/**/*.key
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- roro (0.1.1)
4
+ roro (0.1.3)
5
5
  handsome_fencer-crypto (= 0.1.4)
6
+ os
6
7
  sshkit
7
8
  thor
8
9
 
@@ -110,6 +111,7 @@ GEM
110
111
  notiffany (0.1.1)
111
112
  nenv (~> 0.1)
112
113
  shellany (~> 0.0)
114
+ os (1.0.0)
113
115
  pry (0.12.2)
114
116
  coderay (~> 1.1.0)
115
117
  method_source (~> 0.9.0)
data/Guardfile CHANGED
@@ -14,17 +14,23 @@
14
14
  # $ ln -s config/Guardfile .
15
15
  #
16
16
  # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
17
+ options = {
18
+ cli: '',
19
+ all_after_run: false
20
+ }
17
21
 
18
-
19
- guard :minitest, cli: '' do
22
+ guard :minitest, options do
20
23
  # with Minitest::Unit
21
24
  watch(%r{^test/(.*)\/?test_(.*)\.rb$})
22
25
  watch(%r{^test/(.*)\/?(.*)_test\.rb$})
23
26
  watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
24
- watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { 'test' }
27
+
28
+ watch(%r{^lib/roro/cli/ruby_gem.rb$}) { |m| "test/generators/ruby_gem_test.rb" }
29
+ # watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { 'test' }
25
30
  watch(%r{^test/test_helper\.rb$}) { 'test' }
26
31
  watch(%r{^test/thor_helper\.rb$}) { 'test' }
27
32
 
33
+ watch(%r{^test/fixtures/files/(.*/)?([^/]+)\.yml$}) { 'test/generators/ruby_gem_test.rb' }
28
34
  # with Minitest::Spec
29
35
  # watch(%r{^spec/(.*)_spec\.rb$})
30
36
  # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
@@ -0,0 +1,21 @@
1
+ version: '3.1'
2
+
3
+ services:
4
+
5
+ app:
6
+ build:
7
+ context: .
8
+ dockerfile: docker/containers/app/Dockerfile
9
+ command: rake test
10
+
11
+ app-2-5-3:
12
+ build:
13
+ context: .
14
+ dockerfile: docker/containers/2_5_3/Dockerfile
15
+ command: rake test
16
+
17
+ app-2-6-0:
18
+ build:
19
+ context: .
20
+ dockerfile: docker/containers/2_6_0/Dockerfile
21
+ command: rake test
@@ -0,0 +1,10 @@
1
+ FROM ruby:2.5.3-alpine
2
+
3
+ RUN apk add --no-cache --update build-base linux-headers \
4
+ postgresql-dev nodejs tzdata libxml2-dev libxslt-dev git
5
+
6
+ WORKDIR /usr/src/app
7
+ COPY . /usr/src/app/
8
+ RUN rake install
9
+ RUN gem install bundler
10
+ RUN bundle
@@ -0,0 +1,10 @@
1
+ FROM ruby:2.6.0-alpine
2
+
3
+ RUN apk add --no-cache --update build-base linux-headers \
4
+ postgresql-dev nodejs tzdata libxml2-dev libxslt-dev git
5
+
6
+ WORKDIR /usr/src/app
7
+ COPY . /usr/src/app/
8
+ RUN rake install
9
+ RUN gem install bundler
10
+ RUN bundle
@@ -0,0 +1,10 @@
1
+ FROM ruby:2.5-alpine
2
+
3
+ RUN apk add --no-cache --update build-base linux-headers \
4
+ postgresql-dev nodejs tzdata libxml2-dev libxslt-dev git
5
+
6
+ WORKDIR /usr/src/app
7
+ COPY . /usr/src/app/
8
+ RUN rake install
9
+ RUN gem install bundler
10
+ RUN bundle
@@ -1,2 +1,4 @@
1
- WDN8iYm/r+dQDS2TvKXWU/HfVzSo2vkufmfRWIr3DadCGmvQxLz2GhBN1/JJ
2
- QgjtMoLsgeL26jYt9Z9icx60+g==
1
+ 0ZAQKGGYUfmlZ5t3HKC9qjQ6lUQnbFrN/nGjUAcBGsZC0140WIT3rvUkvqvM
2
+ 3kb6BPlRsiiilSoDwJuPapAoZOqUWW4kyVE7nncPHKnzqTmGbXYStf4e9TBt
3
+ KmUBVU/5LLmQnD6nI9BJMKDg4J+PPPUNjPyJK+XnQWmNWWVQQAWigoYvudVL
4
+ V1lj0fSel5pV
data/lib/roro/cli.rb CHANGED
@@ -5,6 +5,7 @@ require 'roro/cli/greenfield'
5
5
  require 'roro/cli/generate_keys'
6
6
  require 'roro/cli/obfuscate'
7
7
  require 'roro/cli/expose'
8
+ require 'roro/cli/ruby_gem'
8
9
 
9
10
  module Roro
10
11
  class CLI < Thor
@@ -14,5 +15,7 @@ module Roro
14
15
  def self.source_root
15
16
  File.dirname(__FILE__) + '/cli/templates'
16
17
  end
18
+
19
+
17
20
  end
18
21
  end
data/lib/roro/cli/base.rb CHANGED
@@ -96,6 +96,14 @@ module Roro
96
96
  copy_file 'greenfield/Dockerfile', 'Dockerfile'
97
97
  copy_file 'greenfield/config/database.yml.example', 'config/database.yml.example'
98
98
  end
99
+
100
+ def copy_ruby_gem_files
101
+ copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
102
+ # copy_file 'greenfield/Gemfile.lock', 'Gemfile.lock'
103
+ # copy_file 'greenfield/docker-compose.yml', 'docker-compose.yml'
104
+ # copy_file 'greenfield/Dockerfile', 'Dockerfile'
105
+ # copy_file 'greenfield/config/database.yml.example', 'config/database.yml.example'
106
+ end
99
107
  end
100
108
 
101
109
  private
@@ -1,3 +1,4 @@
1
+ require 'os'
1
2
  module Roro
2
3
 
3
4
  class CLI < Thor
@@ -11,26 +12,16 @@ module Roro
11
12
  method_option :force, desc: "force over-write of existing files"
12
13
 
13
14
  def greenfield
15
+
14
16
  if !Dir['./*'].empty? && options["force"].nil?
15
17
  raise Roro::Error.new("Oops -- Roro can't greenfield a new Rails app for you unless the current directory is empty.")
16
18
  end
17
19
  copy_greenfield_files
18
- system 'sleep 5s'
19
- system 'sudo chown -R $USER:$USER .'
20
- system 'sleep 5s'
21
20
  system 'sudo docker-compose run web rails new . --force --database=postgresql --skip-bundle'
22
- system 'sleep 5s'
23
- system 'sudo chown -R $USER:$USER .'
24
- system 'sleep 5s'
21
+ system 'sudo chown -R $USER .' if OS.linux?
25
22
  system 'sudo docker-compose build'
26
- system 'sleep 5s'
27
23
  system 'mv -f config/database.yml.example config/database.yml'
28
- system 'sleep 5s'
29
- system 'chmod 1777 /tmp'
30
- system 'sudo docker-compose up -d'
31
- system 'sleep 5s'
32
- system 'sudo chown -R $USER:$USER .'
33
- system 'sleep 5s'
24
+ system 'sudo docker-compose up --build --force-recreate -d '
34
25
  system 'sudo docker-compose run web bin/rails db:create'
35
26
  end
36
27
  end
@@ -0,0 +1,49 @@
1
+ module Roro
2
+
3
+ class CLI < Thor
4
+
5
+ include Thor::Actions
6
+
7
+ desc "ruby_gem", "Generate files for containerized gem testing, CircleCI, and releasing to RubyGems."
8
+ method_option :rubies, type: :array, banner: "2.5.3 2.4.2"
9
+
10
+ def ruby_gem
11
+ rubies = options["rubies"] || ["2.5.3", "2.6.0"]
12
+ copy_file 'ruby_gem/docker-compose.yml', 'docker-compose.yml'
13
+ copy_file 'ruby_gem/config.yml', '.circleci/config.yml'
14
+ copy_file 'ruby_gem/setup-gem-credentials.sh', '.circleci/setup-gem-credentials.sh'
15
+ directory 'ruby_gem/docker', 'docker', { ruby_version: "2.5"}
16
+
17
+ rubies.each do |ruby|
18
+ rubydash = ruby.gsub('.', '-')
19
+ rubyunderscore = ruby.gsub('.', '_')
20
+ doc_loc = "docker/containers/#{rubyunderscore}/Dockerfile"
21
+ content = <<-EOM
22
+
23
+ app-#{rubydash}:
24
+ build:
25
+ context: .
26
+ dockerfile: #{doc_loc}
27
+ command: rake test
28
+ EOM
29
+ append_to_file 'docker-compose.yml', content
30
+ template 'ruby_gem/docker/containers/app/Dockerfile.tt', doc_loc, {ruby_version: ruby}
31
+ # append_to_file 'docker-compose.yml', "\n app-#{ruby}:\n build:\n\s\s\s\s\s\scontext:"
32
+ end
33
+ # byebug
34
+
35
+ # end
36
+ # <<EOF
37
+ # This is the first way of creating
38
+ # here document ie. multiple line string.
39
+ # EOF
40
+ # %w[app web].each do |container|
41
+ # options = {
42
+ # email: @env_hash['DOCKERHUB_EMAIL'],
43
+ # app_name: @env_hash['APP_NAME'] }
44
+ #
45
+ # template("docker/containers/#{container}/Dockerfile.tt", "docker/containers/#{container}/Dockerfile", options)
46
+ # end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,122 @@
1
+ defaults: &defaults
2
+ working_directory: /repo
3
+
4
+ version: 2
5
+
6
+ jobs:
7
+
8
+ build:
9
+ machine: true
10
+ steps:
11
+ - checkout
12
+
13
+ test:
14
+ docker:
15
+ - image: circleci/ruby:2.5.3
16
+ steps:
17
+ - checkout
18
+ - setup_remote_docker
19
+ - run: gem install bundler
20
+ - run: bundle
21
+ - run: rake install
22
+ - run: mkdir tmp
23
+ - run: docker-compose up app
24
+
25
+ test_all:
26
+ docker:
27
+ - image: circleci/ruby:2.5.3
28
+ steps:
29
+ - checkout
30
+ - setup_remote_docker
31
+ - run: gem install bundler
32
+ - run: bundle
33
+ - run: rake install
34
+ - run: mkdir tmp
35
+ - run: docker-compose up
36
+
37
+ build-greenfield:
38
+ machine: true
39
+ steps:
40
+ - checkout
41
+ - run: bundle
42
+ - run: rake install
43
+ - run:
44
+ name: Greenfield
45
+ working_directory: sooperdooper
46
+ command: |
47
+ bundle
48
+ sleep 2s
49
+ rake install
50
+ sleep 5s
51
+ roro greenfield
52
+ sleep 5s
53
+ curl -Is localhost:3000 | head -n 1
54
+
55
+ build-rollon:
56
+ machine: true
57
+ steps:
58
+ - checkout
59
+ - run: bundle
60
+ - run: rake install
61
+ - run:
62
+ name: Rollon
63
+ working_directory: test_apps/dummy
64
+ command: |
65
+ roro rollon
66
+ docker-compose up -d
67
+ docker-compose exec app bin/rails db:create
68
+ docker-compose exec app rake test
69
+ curl -Is localhost:3000 | head -n 1
70
+
71
+ release:
72
+ docker:
73
+ - image: circleci/ruby:2.5.3
74
+ steps:
75
+ - checkout
76
+ - setup_remote_docker
77
+ - run: gem install bundler
78
+ - run: bundle
79
+ - run: rake install
80
+ - run: roro expose
81
+ - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
82
+ - run: bash .circleci/setup-gem-credentials.sh
83
+ - run: rake release
84
+
85
+
86
+ workflows:
87
+ version: 2
88
+ build-and-deploy:
89
+ jobs:
90
+ - build
91
+ - test:
92
+ filters:
93
+ branches:
94
+ except:
95
+ - build-greenfield
96
+ - build-rollon
97
+ - release
98
+ - master
99
+ - build-greenfield:
100
+ filters:
101
+ branches:
102
+ only:
103
+ - build-greenfield
104
+ - master
105
+ - build-rollon:
106
+ filters:
107
+ branches:
108
+ only:
109
+ - build-rollon
110
+ - master
111
+ - test_all:
112
+ filters:
113
+ branches:
114
+ only:
115
+ - development
116
+ - master
117
+
118
+ - release:
119
+ filters:
120
+ branches:
121
+ only:
122
+ - release
@@ -0,0 +1,9 @@
1
+ version: '3.1'
2
+
3
+ services:
4
+
5
+ app:
6
+ build:
7
+ context: .
8
+ dockerfile: docker/containers/app/Dockerfile
9
+ command: rake test
@@ -0,0 +1,10 @@
1
+ FROM ruby:<%= config[:ruby_version] %>-alpine
2
+
3
+ RUN apk add --no-cache --update build-base linux-headers \
4
+ postgresql-dev nodejs tzdata libxml2-dev libxslt-dev git
5
+
6
+ WORKDIR /usr/src/app
7
+ COPY . /usr/src/app/
8
+ RUN rake install
9
+ RUN gem install bundler
10
+ RUN bundle
File without changes
@@ -0,0 +1,3 @@
1
+ mkdir ~/.gem
2
+ echo -e "---\r\n:rubygems_api_key: $RUBYGEMS_API_KEY" > ~/.gem/credentials
3
+ chmod 0600 /home/circleci/.gem/credentials
data/lib/roro/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Roro
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.3"
3
3
  end
data/roro.gemspec CHANGED
@@ -38,6 +38,7 @@ Gem::Specification.new do |spec|
38
38
  spec.require_paths = ["lib"]
39
39
 
40
40
  spec.add_dependency "thor"
41
+ spec.add_dependency "os"
41
42
  spec.add_dependency "sshkit"
42
43
  spec.add_dependency "handsome_fencer-crypto", "0.1.4"
43
44
  spec.add_development_dependency "bundler", "~> 1.17"
File without changes
File without changes
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: roro
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - schadenfred
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-02 00:00:00.000000000 Z
11
+ date: 2019-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: os
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: sshkit
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +150,10 @@ files:
136
150
  - bin/console
137
151
  - bin/roro
138
152
  - bin/setup
153
+ - docker-compose.yml
154
+ - docker/containers/2_5_3/Dockerfile
155
+ - docker/containers/2_6_0/Dockerfile
156
+ - docker/containers/app/Dockerfile
139
157
  - docker/env_files/.keep
140
158
  - docker/env_files/circleci.env.enc
141
159
  - docker/keys/.keep
@@ -148,6 +166,7 @@ files:
148
166
  - lib/roro/cli/greenfield.rb
149
167
  - lib/roro/cli/obfuscate.rb
150
168
  - lib/roro/cli/rollon.rb
169
+ - lib/roro/cli/ruby_gem.rb
151
170
  - lib/roro/cli/templates/Gemfile.lock
152
171
  - lib/roro/cli/templates/Guardfile
153
172
  - lib/roro/cli/templates/circleci/Rakefile
@@ -175,6 +194,12 @@ files:
175
194
  - lib/roro/cli/templates/greenfield/config/database.yml.example
176
195
  - lib/roro/cli/templates/greenfield/docker-compose.yml
177
196
  - lib/roro/cli/templates/lib/tasks/deploy.rake
197
+ - lib/roro/cli/templates/ruby_gem/config.yml
198
+ - lib/roro/cli/templates/ruby_gem/docker-compose.yml
199
+ - lib/roro/cli/templates/ruby_gem/docker/containers/app/Dockerfile.tt
200
+ - lib/roro/cli/templates/ruby_gem/docker/env_files/.keep
201
+ - lib/roro/cli/templates/ruby_gem/docker/keys/.keep
202
+ - lib/roro/cli/templates/ruby_gem/setup-gem-credentials.sh
178
203
  - lib/roro/version.rb
179
204
  - lib/tasks/deploy.rake
180
205
  - roro.gemspec
@@ -255,6 +280,7 @@ files:
255
280
  - test_apps/dummy/test/test_helper.rb
256
281
  - test_apps/dummy/tmp/.keep
257
282
  - test_apps/dummy/vendor/.keep
283
+ - test_apps/dummy_gem/.keep
258
284
  - test_apps/dummy_roro/.circleci/Rakefile
259
285
  - test_apps/dummy_roro/.circleci/config.job-example.yml
260
286
  - test_apps/dummy_roro/.circleci/config.yml
@@ -384,8 +410,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
384
410
  - !ruby/object:Gem::Version
385
411
  version: '0'
386
412
  requirements: []
387
- rubyforge_project:
388
- rubygems_version: 2.6.13
413
+ rubygems_version: 3.0.1
389
414
  signing_key:
390
415
  specification_version: 4
391
416
  summary: Dockerize your Rails app, set it up for CI, roll it onto your image repository,