roro 0.3.8 → 0.3.9

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: 5d2920a993245b49f9ac51cf665584007cd9cf1b93e5910a18201b914d62e9b1
4
- data.tar.gz: 44fe546dafd609adb0162cc2296f8562afa7f5cd6cb23bb7b607f1aaf2b08bc6
3
+ metadata.gz: 04dbb241c4e833ddc92e4092594bafdc9be7d4e9a97f235ef2b3430af5c08081
4
+ data.tar.gz: 68dc2d2a07987ebeb819f7a4c15bc33ef43b2f1f544caf628706970a5f239bbc
5
5
  SHA512:
6
- metadata.gz: be706b2f7677d2e0b1967b645190197be96ed89cdab015bba2de649dd300d395b17acc395feb4687d2a3d7c9805d51c788fa10af3d1163d37d51ef67753d272a
7
- data.tar.gz: 052aca113a452bf5cf9ee7c01f18e0d4c33e46cdfea5a2d97e768c0652c22d952e4d905770a985d150279c9c8efb7fa7b8a6fed2b2b165bcfa11c194a458468b
6
+ metadata.gz: 4debcc463150555b50360924374028fa74664955a33d47cf67f6362b3a9c1f84f2b2694551da8c342104e6e5d1386303f7018219b82549873b2a7d413747fea6
7
+ data.tar.gz: 0ec3c8fb00c1378007f6cad61e729b157b56b7be0d3bb4438f33e974365d6323f29bf1ded3dfb55293d24e23fab125f6bae02db786e77f3ea64766e865b95fea
data/Guardfile CHANGED
@@ -4,7 +4,7 @@
4
4
  options = {
5
5
  cli: '-f',
6
6
  all_on_start: true,
7
- all_after_pass: false
7
+ all_after_pass: true
8
8
  }
9
9
 
10
10
  guard :minitest, options do
@@ -17,7 +17,7 @@ module Roro
17
17
  configure_for_rollon
18
18
 
19
19
  copy_roro_files
20
- generate_roro_config
20
+ generate_config
21
21
  startup_commands
22
22
  end
23
23
 
@@ -1,3 +1,2 @@
1
1
  require 'roro/cli/rollon/stories/ruby_gem'
2
2
  require 'roro/cli/rollon/stories/rails'
3
- require 'roro/cli/rollon/stories/database'
@@ -1 +1 @@
1
- # require 'roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb'
1
+ require 'roro/cli/rollon/stories/rails/database'
@@ -1,3 +1,5 @@
1
+ require 'roro/cli/rollon/stories/rails/database/with_mysql'
2
+ require 'roro/cli/rollon/stories/rails/database/with_postgresql'
1
3
  module Roro
2
4
 
3
5
  class CLI < Thor
@@ -12,9 +12,30 @@ module Roro
12
12
  no_commands do
13
13
  def ruby_gem_with_ci_cd(*args)
14
14
  configure_for_rollon
15
- directory 'ruby_gem', './', @config.app
15
+ answer = ask("\nYou can add your rubygems api key in\n\t
16
+ './roro/ci.env' \n\nlater, or we'll try to add it here:",
17
+ default: '')
18
+ rubygems_api_key = (answer.eql?("") ? 'some-key' : answer)
19
+ @config.app['rubygems_api_key'] = rubygems_api_key
20
+ @config.app['rubies'] = []
21
+ 3.times do |index|
22
+ newruby = @config.app['ruby_version'].gsub('.', '').to_i - index
23
+ @config.app['rubies'] << newruby.to_s.split('').join('.')
24
+ end
25
+ directory 'ruby_gem/roro', './roro', @config.app
26
+ directory 'ruby_gem/.circleci', './.circleci', @config.app
27
+ copy_file 'ruby_gem/docker-compose.yml', './docker-compose.yml'
28
+
29
+ @config.app['rubies'].each do |ruby|
30
+ img_name = 'ruby_gem:' + ruby
31
+ file = '.circleci/config.yml'
32
+
33
+ run_build = "\n - run: RUBY_IMAGE=ruby:#{ruby}-alpine docker-compose build ruby_gem"
34
+ run_test = "\n - run: RUBY_IMAGE=ruby:#{ruby}-alpine docker-compose run ruby_gem rake test"
35
+ append_to_file file, run_build + run_test, after: 'gem install roro'
36
+ end
37
+ append_to_file ".gitignore", "\nGemfile.lock"
16
38
  gitignore_sensitive_files
17
- append_to_file ".gitignore", "Gemfile.lock\n"
18
39
  end
19
40
  end
20
41
  end
@@ -1,7 +1,3 @@
1
1
  require_relative 'ruby_gem/ruby_gem'
2
2
 
3
- # module Stories
4
- # module RubyGem
5
- # end
6
- # end
7
3
 
@@ -1,5 +1,5 @@
1
1
  defaults: &defaults
2
- working_directory: /repo
2
+ working_directory: /tmp
3
3
 
4
4
  version: 2
5
5
 
@@ -9,114 +9,9 @@ jobs:
9
9
  machine: true
10
10
  steps:
11
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
12
+ - run: gem install roro
13
+ - run: roro expose ci
14
+ - run: echo 'source roro/containers/gem/ci.env' >> $BASH_ENV
15
+ - run: setup_gem_credentials.sh
16
+ - run: gem install gem-release -k
17
+ - run: gem release
@@ -5,5 +5,7 @@ services:
5
5
  ruby_gem:
6
6
  build:
7
7
  context: .
8
- dockerfile: roro/containers/gem/Dockerfile
9
- command: rake test
8
+ dockerfile: roro/containers/ruby_image/Dockerfile
9
+ environment:
10
+ - RUBY_IMAGE=${RUBY_IMAGE}
11
+ command: bundle exec rake test
@@ -0,0 +1 @@
1
+ RUBYGEMS_API_KEY=<%= config['rubygems_api_key'] %>
@@ -0,0 +1,16 @@
1
+ ARG RUBY_IMAGE=ruby:<%= config['ruby_version'] %>-alpine
2
+ FROM $RUBY_IMAGE
3
+
4
+ RUN apk add --no-cache --update build-base linux-headers git
5
+
6
+ ENV APP_HOME /usr/src/app/
7
+
8
+ RUN mkdir ${APP_HOME}
9
+
10
+
11
+ WORKDIR ${APP_HOME}
12
+
13
+
14
+ COPY . ${APP_HOME}
15
+ RUN gem update bundler
16
+ RUN bundle
@@ -1,3 +1,3 @@
1
1
  module Roro
2
- VERSION = "0.3.8"
2
+ VERSION = "0.3.9"
3
3
  end
@@ -41,11 +41,11 @@ Gem::Specification.new do |spec|
41
41
  spec.add_dependency "thor", "~> 1.0"
42
42
  spec.add_dependency "os", "1.0.0"
43
43
  spec.add_dependency "sshkit", "1.18.2"
44
- spec.add_dependency "handsome_fencer-crypto", "0.1.6"
44
+ spec.add_dependency "handsome_fencer-crypto"
45
+ spec.add_dependency "byebug"
45
46
  spec.add_development_dependency "bundler"
46
47
  spec.add_development_dependency "rake", ">= 12.3"
47
48
  spec.add_development_dependency "handsome_fencer-test", "0.1.1"
48
49
  spec.add_development_dependency "mocha"
49
- spec.add_development_dependency "byebug"
50
50
 
51
51
  end
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.3.8
4
+ version: 0.3.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - schadenfred
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-21 00:00:00.000000000 Z
11
+ date: 2020-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gem-release
@@ -70,16 +70,30 @@ dependencies:
70
70
  name: handsome_fencer-crypto
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 0.1.6
75
+ version: '0'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '='
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: byebug
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
- version: 0.1.6
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: bundler
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -136,20 +150,6 @@ dependencies:
136
150
  - - ">="
137
151
  - !ruby/object:Gem::Version
138
152
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: byebug
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - ">="
144
- - !ruby/object:Gem::Version
145
- version: '0'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: '0'
153
153
  description: Roro is a containerization and continuous integration framework for Ruby
154
154
  on Rails applications. Like Rails, it favors convention over configuration "...for
155
155
  programmer happiness and sustainable productivity."
@@ -194,9 +194,10 @@ files:
194
194
  - lib/roro/cli/rollon/stories.rb
195
195
  - lib/roro/cli/rollon/stories/database.rb
196
196
  - lib/roro/cli/rollon/stories/rails.rb
197
- - lib/roro/cli/rollon/stories/rails/database/database.rb
197
+ - lib/roro/cli/rollon/stories/rails/.keep
198
+ - lib/roro/cli/rollon/stories/rails/database.rb
198
199
  - lib/roro/cli/rollon/stories/rails/database/with_mysql.rb
199
- - lib/roro/cli/rollon/stories/rails/database/with_postgres.rb
200
+ - lib/roro/cli/rollon/stories/rails/database/with_postgresql.rb
200
201
  - lib/roro/cli/rollon/stories/ruby_gem.rb
201
202
  - lib/roro/cli/rollon/stories/ruby_gem/with_ci_cd.rb
202
203
  - lib/roro/cli/rollon/stories/stories.rb
@@ -212,15 +213,6 @@ files:
212
213
  - lib/roro/cli/templates/base/Dockerfile.tt
213
214
  - lib/roro/cli/templates/base/config/database.mysql.yml
214
215
  - lib/roro/cli/templates/base/config/database.pg.yml
215
- - lib/roro/cli/templates/circleci/config.yml.tt
216
- - lib/roro/cli/templates/dockerize/.env/.keep
217
- - lib/roro/cli/templates/dockerize/.env/development/.keep
218
- - lib/roro/cli/templates/dockerize/.env/development/database
219
- - lib/roro/cli/templates/dockerize/.env/development/web
220
- - lib/roro/cli/templates/dockerize/.keep
221
- - lib/roro/cli/templates/dockerize/Dockerfile.tt
222
- - lib/roro/cli/templates/dockerize/docker-compose.yml.tt
223
- - lib/roro/cli/templates/dockerize/docker-entrypoint.sh
224
216
  - lib/roro/cli/templates/greenfield/Dockerfile.tt
225
217
  - lib/roro/cli/templates/jumpstart/.env/.keep
226
218
  - lib/roro/cli/templates/jumpstart/.env/development/.keep
@@ -240,8 +232,9 @@ files:
240
232
  - lib/roro/cli/templates/roro/roro/docker-entrypoint.sh.tt
241
233
  - lib/roro/cli/templates/ruby_gem/.circleci/config.yml
242
234
  - lib/roro/cli/templates/ruby_gem/docker-compose.yml
243
- - lib/roro/cli/templates/ruby_gem/roro/containers/gem/Dockerfile.tt
244
- - lib/roro/cli/templates/ruby_gem/roro/env_files/.keep
235
+ - lib/roro/cli/templates/ruby_gem/roro/ci.env.tt
236
+ - lib/roro/cli/templates/ruby_gem/roro/containers/.keep
237
+ - lib/roro/cli/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt
245
238
  - lib/roro/cli/templates/ruby_gem/roro/keys/.keep
246
239
  - lib/roro/cli/templates/ruby_gem/setup-gem-credentials.sh
247
240
  - lib/roro/cli/templates/stories/.keep
@@ -1,70 +0,0 @@
1
- defaults: &defaults
2
- working_directory: /tmp
3
-
4
- version: 2
5
-
6
- jobs:
7
-
8
- build:
9
- machine: true
10
- steps:
11
- - checkout
12
- - run: gem install handsome_fencer-circle_c_i
13
- - run: handsome_fencer-circle_c_i expose circleci
14
- - run: handsome_fencer-circle_c_i expose development
15
- - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
16
- - run: docker-compose up -d <%= config[:app_name] %> --build
17
- - run: docker-compose exec <%= config[:app_name] %> bin/rails db:create db:migrate
18
- - run: docker-compose exec <%= config[:app_name] %> bin/rails test
19
-
20
- push:
21
- machine: true
22
- steps:
23
- - checkout
24
- - run: gem install handsome_fencer-circle_c_i
25
- - run: handsome_fencer-circle_c_i expose circleci
26
- - run: handsome_fencer-circle_c_i expose development
27
- - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
28
- - run: docker-compose build <%= config[:app_name] %> web
29
- - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
30
- - run: docker login -u $DOCKERHUB_USER -p $DOCKERHUB_PASS
31
- - run:
32
- name: Tag <%= config[:app_name] %> image
33
- command: docker tag $(docker images | grep project_<%= config[:app_name] %> | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
34
- - run:
35
- name: Tag web image
36
- command: docker tag $(docker images | grep project_web | awk '{ print $3 }') ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
37
-
38
-
39
- - run: docker push ${DOCKERHUB_ORG_NAME}/${APP_NAME}_app:$DEPLOY_TAG
40
- - run: docker push ${DOCKERHUB_ORG_NAME}/${APP_NAME}_web:$DEPLOY_TAG
41
-
42
- deploy:
43
- machine: true
44
- steps:
45
- - checkout
46
- - add_ssh_keys
47
- - run: gem install handsome_fencer-circle_c_i
48
- - run: handsome_fencer-circle_c_i expose circleci
49
- - run: handsome_fencer-circle_c_i expose development
50
- - run: echo 'source docker/env_files/circleci.env' >> $BASH_ENV
51
-
52
- - run: rake --rakefile .circleci/Rakefile
53
-
54
- workflows:
55
- version: 2
56
- build-and-deploy:
57
- jobs:
58
- - build
59
- - push:
60
- requires:
61
- - build
62
- filters:
63
- branches:
64
- only: master
65
- - deploy:
66
- requires:
67
- - push
68
- filters:
69
- branches:
70
- only: master
@@ -1,23 +0,0 @@
1
- FROM ruby:<%= config[:ruby_version] %>
2
-
3
-
4
- RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
5
- RUN echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
6
- RUN apt-get update -qq && apt-get install -y build-essential git nodejs yarn
7
-
8
-
9
- ENV APP_HOME /usr/src/app/
10
- RUN mkdir $APP_HOME
11
- WORKDIR $APP_HOME
12
-
13
- COPY Gemfile* $APP_HOME
14
-
15
- ENV BUNDLE_PATH /gems
16
-
17
- RUN bundle install
18
- RUN yarn
19
-
20
- COPY . ./$APP_HOME
21
-
22
-
23
-
@@ -1,60 +0,0 @@
1
- version: '3'
2
-
3
- services:
4
-
5
- web:
6
- build: .
7
- depends_on:
8
- - database
9
- - webpack_dev_server
10
- - redis
11
- # entrypoint: ./docker-entrypoint.sh
12
- command: ["bin/rails", "s", "-b", "0.0.0.0"]
13
-
14
- ports:
15
- - "3000:3000"
16
- - "4000:4000"
17
- volumes:
18
- - .:/usr/src/app
19
- - gem_cache:/gems
20
- env_file:
21
- - .env/development/web
22
- - .env/development/database
23
- environment:
24
- - WEBPACKER_DEV_SERVER_HOST=webpack_dev_server
25
-
26
- webpack_dev_server:
27
- build: .
28
- command: ./bin/webpack-dev-server
29
- ports:
30
- - 3035:3035
31
- volumes:
32
- - .:/usr/src/app
33
- - gem_cache:/gems
34
- env_file:
35
- - .env/development/database
36
- - .env/development/web
37
- environment:
38
- - WEBPACKER_DEV_SERVER_HOST=0.0.0.0
39
-
40
- redis:
41
- image: redis
42
-
43
- database:
44
- image: postgres
45
- env_file:
46
- - .env/development/database
47
- volumes:
48
- - db_data:/var/lib/postgresql/data
49
-
50
- system_tests:
51
- image: selenium/standalone-chrome-debug
52
- logging:
53
- driver: none
54
- ports:
55
- - "35729:35729"
56
- - "5900:5900"
57
-
58
- volumes:
59
- db_data:
60
- gem_cache:
@@ -1,9 +0,0 @@
1
- #!/bin/sh
2
-
3
- set -e
4
-
5
- if [ -f tmp/pids/server.pid ]; then
6
- rm tmp/pids/server.pid
7
- fi
8
-
9
- exec "$@"
@@ -1,9 +0,0 @@
1
- FROM ruby:<%= config['ruby_version'] %>-alpine
2
-
3
- RUN apk add --no-cache --update build-base linux-headers git
4
-
5
- WORKDIR /usr/src/app
6
- COPY . /usr/src/app/
7
- RUN gem install bundler
8
- RUN bundle
9
- RUN bundle exec rake install