roro 0.3.8 → 0.3.9

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