roro 0.3.30 → 0.3.33
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 +4 -4
- data/.circleci/config.reference.yml +139 -0
- data/.circleci/config.yml +154 -135
- data/.circleci/src/@config.yml +2 -0
- data/.circleci/src/commands/restore-and-save-cache.yml +11 -0
- data/.circleci/src/commands/run-test-case.yml +11 -0
- data/.circleci/src/executors/linux.yml +2 -0
- data/.circleci/src/executors/ruby.yml +7 -0
- data/.circleci/src/jobs/build.yml +5 -0
- data/.circleci/src/jobs/release.yml +10 -0
- data/.circleci/src/jobs/test-adventures.yml +15 -0
- data/.circleci/src/jobs/test-rubies.yml +14 -0
- data/.circleci/src/workflows/adventures.yml +49 -0
- data/.circleci/src/workflows/adventures.yml.tt +11 -0
- data/.circleci/src/workflows/gem-release.yml +9 -0
- data/.circleci/src/workflows/rubies.yml +13 -0
- data/.circleci/src/workflows/rubies.yml.tt +14 -0
- data/.harvest/cases.yml +39 -0
- data/.harvest/structure_choices.yml +73 -0
- data/.harvest/structure_human.yml +73 -0
- data/.harvest.yml +40 -0
- data/.idea/markdown.xml +9 -0
- data/.idea/roro.iml +380 -77
- data/.idea/runConfigurations/_template__of_Test__Unit_Shoulda_Minitest.xml +41 -0
- data/.idea/runConfigurations/ci_prepare.xml +36 -0
- data/.idea/runConfigurations/ci_test_adventures.xml +39 -0
- data/.idea/runConfigurations/ci_test_rubies.xml +36 -0
- data/.idea/runConfigurations/generate_annotations.xml +17 -0
- data/.idea/runConfigurations/test_adventures.xml +40 -0
- data/.idea/runConfigurations/test_all.xml +40 -0
- data/.idea/runConfigurations/test_tasks.xml +40 -0
- data/.idea/runConfigurations/test_test.xml +40 -0
- data/.pryrc +2 -0
- data/CODE_OF_CONDUCT.md +20 -25
- data/Gemfile.lock +183 -0
- data/Guardfile +11 -22
- data/README.md +27 -178
- data/Rakefile +39 -7
- data/cases +1 -0
- data/docker-compose.yml +26 -6
- data/lib/roro/cli/generate/generate_adventure.rb +23 -0
- data/lib/roro/cli/generate/generate_adventure_tests.rb +22 -0
- data/lib/roro/cli/generate/generate_environments.rb +1 -0
- data/lib/roro/cli/generate/generate_harvest.rb +42 -0
- data/lib/roro/cli/rollon.rb +0 -7
- data/lib/roro/cli.rb +18 -6
- data/lib/roro/common/utilities.rb +44 -13
- data/lib/roro/configurators/adventure_chooser.rb +4 -2
- data/lib/roro/configurators/adventure_picker.rb +7 -7
- data/lib/roro/configurators/adventure_writer.rb +194 -3
- data/lib/roro/configurators/catalog_builder.rb +1 -1
- data/lib/roro/configurators/configurator.rb +64 -8
- data/lib/roro/configurators/dependency_satisfier.rb +135 -136
- data/lib/roro/configurators/question_builder.rb +6 -6
- data/lib/roro/configurators/reflector.rb +225 -0
- data/lib/roro/configurators/structure_builder.rb +1 -0
- data/lib/roro/configurators/validator.rb +1 -1
- data/lib/roro/crypto/key_writer.rb +2 -0
- data/lib/roro/stacks/docker.yml +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/alpine.yml +2 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/docker.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/git.yml +17 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/_builder.yml +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/laravel.yml +11 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/builder/Dockerfile.tt +14 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/builder/composer.json +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker/default.conf +22 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker/php.dockerfile.tt +43 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker/scheduler.sh +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest/docker-compose.yml.tt +122 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/partials/services/site.erb +16 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/_test.rb +142 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/composer.json +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker/default.conf +22 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker/php.dockerfile +43 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker/scheduler.sh +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/dummy/docker-compose.yml +122 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/_builder/Dockerfile +14 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/_builder/composer.json +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/laravel/Dockerfile +14 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/test/0/layers/laravel/composer.json +7 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/okonomi/languages/php/adventures}/wordpress/wordpress.yml +2 -2
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/php.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/_builder.yml +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/mysql.yml +26 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/partials/_python_requirements.erb +2 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/partials/_settings_py_databases.erb +10 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/partials/services/_db.yml.erb +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/postgres.yml +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/templates/partials/_settings_py_databases.erb +10 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/templates/partials/services/_db.yml.erb +9 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/okonomi/languages/python/frameworks}/django/django.yml +11 -9
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/builder/Dockerfile.tt +20 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_two → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/manifest/%interpolated_app_name%}/settings.py.tt +8 -17
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/manifest}/Dockerfile.tt +8 -2
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/partials/_volumes.erb +4 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/templates/partials/services/_web.yml.erb +12 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/0/_test.rb +97 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/0/dummy/requirements.txt +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/2/_test.rb +91 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/2/dummy/requirements.txt +4 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/_builder.yml +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/flask.yml +8 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/builder/Dockerfile.tt +16 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/partials/services/_redis.yml.erb +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/partials/services/_web.yml.erb +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/_test.rb +74 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/dummy/Dockerfile +11 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/dummy}/docker-compose.yml +12 -3
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/test/0/layers/flask/Dockerfile +11 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/python.yml +8 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/templates/manifest/docker-compose.yml.tt +9 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/versions/python_3_10_1/python_3_10_1.yml +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/python/versions/python_3_9_9/python_3_9_9.yml +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/_builder.yml +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/postgres.yml +26 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/templates/partials/packages/_postgres.erb +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/templates/partials/services/_db.erb +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/versions/postgres_13_5/postgres_13_5.yml +4 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/versions/postgres_14_1/postgres_14_1.yml +4 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/sqlite/sqlite.yml +8 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/sqlite/templates/partials/packages/_sqlite.erb +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/sqlite/templates/partials/services/_db.erb +9 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/rails.yml +14 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/resque/resque.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/sidekiq/sidekiq.yml +1 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/builder}/Dockerfile.tt +5 -6
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/manifest/Dockerfile.tt +20 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/manifest/docker-compose.yml.tt +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/packages/_base.erb +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/services/_app.erb +17 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/shared/_env_file.erb +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/partials/volumes/_base.erb +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/rails_6_1.yml +12 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/templates/partials/_packages_adventure.erb +8 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/_test.rb +71 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy/Gemfile +56 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy/config/environments/production.rb +120 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy/docker-compose.yml +32 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/layers/_builder/Dockerfile +41 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/layers/rails/Dockerfile +37 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/_test.rb +94 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/Dockerfile +37 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/Gemfile +56 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/config/environments/production.rb +120 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/rails_7_0.yml +10 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/_test.rb +90 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/dummy/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/dummy/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/dummy/config/database.yml +25 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/idiot/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/idiot/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/layers/rails/config/database.yml +25 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/layers/rails/docker-compose.yml +34 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/0/layers/rails/mise/env/base.env +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/_test.rb +61 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/dummy/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/dummy/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/dummy/config/database.yml +25 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/idiot/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/idiot/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/layers/rails/config/database.yml +25 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/layers/rails/docker-compose.yml +34 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/1/layers/rails/mise/env/base.env +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/_test.rb +76 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy/Dockerfile +29 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy}/Gemfile +22 -16
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot/Dockerfile +29 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot}/Gemfile +22 -16
- data/lib/roro/stacks/{stories_v1/templates/rails/config/database.pg.yml → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot/config/database.yml} +2 -2
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/idiot/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/_builder/Dockerfile +34 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/rails/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/rails/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/layers/rails/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/_test.rb +81 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/layers/_builder/Dockerfile +34 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/layers/rails/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/_test.rb +80 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/_builder/Dockerfile +34 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/rails/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/rails/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/layers/rails/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/_test.rb +82 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy/docker-compose.yml +33 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/_builder/Dockerfile +34 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/rails/Dockerfile +29 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/rails/Gemfile +72 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/layers/rails/config/database.yml +19 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/ruby_gem/ruby_gem.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/frameworks/ruby_gem/templates/stage_one/.gitignore +56 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles → unstoppable_developer_styles}/okonomi/languages/ruby/ruby.yml +1 -1
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/versions/ruby_2_7/ruby_2_7.yml +4 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/ruby/versions/ruby_3_0/ruby_3_0.yml +6 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/okonomi.yml +8 -0
- data/lib/roro/stacks/unstoppable_developer_styles/okonomi/templates/manifest/.dockerignore.tt +32 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/.env +1 -1
- data/lib/roro/stacks/unstoppable_developer_styles/omakase/frameworks/wordpress/test/0/_test.rb +12 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/wordpress/wordpress.yml +3 -3
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/circleci.yml +31 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/partials/_ignores.erb +9 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/.circleci/config.yml.tt +45 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/Dockerfile +3 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/index.html +7 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s/app-deployment.yml.tt +23 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s/app-service.yml.tt +15 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s-general/cicd-role-binding.yml +13 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s-general/cicd-role.yml +9 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/k8s-general/cicd-service-account.yml +5 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/scripts/ci-deploy.sh.tt +23 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/test/0/_test.rb +57 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/devops/devops.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/kubernetes.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/ingress.yml +2 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/nginx.yml +1 -0
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/test/0/_test.rb +15 -0
- data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/env-configmap.yaml.tt +1 -1
- data/lib/roro/stacks/unstoppable_developer_styles/sashimi/frameworks/rails/test/0/_test.rb +15 -0
- data/lib/roro/templates/adventure/%adventure_name%.yml.tt +5 -0
- data/lib/roro/templates/adventure/test/0/_test.rb.tt +8 -0
- data/lib/roro/templates/adventure_test/_test.rb.tt +31 -0
- data/lib/roro/version.rb +1 -1
- data/lib/roro.rb +9 -2
- data/mise/containers/ruby_gem/Dockerfile +25 -12
- data/mise/containers/ruby_gem/Dockerfile-ubuntu +13 -0
- data/mise/logs/cases.yml +235 -0
- data/mise/logs/getsome.yml +204 -0
- data/mise/logs/itineraries.yml +235 -0
- data/mise/logs/reflector.yml +204 -0
- data/mise/scripts/ci/jobs/run.sh +6 -0
- data/mise/scripts/rollon/build_app.sh +7 -0
- data/mise/scripts/rollon/down.sh +9 -0
- data/mise/scripts/rollon/git_commit.sh +8 -0
- data/mise/scripts/rollon/image_build.sh +7 -0
- data/mise/scripts/rollon/image_push.sh +8 -0
- data/mise/scripts/rollon/prune.sh +3 -0
- data/mise/scripts/rollon/reset_sandbox.sh +13 -0
- data/mise/scripts/rollon/run.sh +16 -0
- data/mise/scripts/rollon-pull.sh +37 -0
- data/mise/scripts/rollon.sh +26 -0
- data/rakelib/ci/prepare/config/pack.rake +15 -0
- data/rakelib/ci/prepare/config/process.rake +12 -0
- data/rakelib/ci/prepare/config/validate.rake +13 -0
- data/rakelib/ci/prepare/config.rake +8 -0
- data/rakelib/ci/prepare/workflows/adventures.rake +70 -0
- data/rakelib/ci/prepare/workflows/rubies.rake +15 -0
- data/rakelib/ci/prepare.rake +11 -0
- data/rakelib/ci/test/adventures.rake +18 -0
- data/rakelib/ci/test/rubies.rake +12 -0
- data/rakelib/ci/update.rake +6 -0
- data/rakelib/club/harvest.rake +9 -0
- data/rakelib/docker/image/build.rake +8 -0
- data/rakelib/test/annotate.rake +16 -0
- data/roro.gemspec +19 -17
- metadata +383 -296
- data/.circleci/setup-gem-credentials.sh +0 -3
- data/.travis.yml +0 -7
- data/lib/roro/configurators/adventure_case_builder.rb +0 -65
- data/lib/roro/configurators/utilities.rb +0 -188
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/fatsufodo.yml +0 -1
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/_django.yml +0 -7
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_one/docker-compose.yml.tt +0 -20
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/templates/stage_one/requirements.txt.tt +0 -2
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/django/test/stage_one/stage_one_test.rb +0 -37
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/expressjs/expressjs.yml +0 -8
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/expressjs/templates/stage_one/Dockerfile.tt +0 -14
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/expressjs/templates/stage_one/docker-compose.yml.tt +0 -21
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/flask/flask.yml +0 -14
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one/requirements.txt +0 -2
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test/stage_one/stage_test.rb +0 -37
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/rails/rails.yml +0 -12
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/fatsufodo/stories/rails/templates/stage_one/docker-compose.yml.tt +0 -9
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/python/python.yml +0 -10
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/python/test/stage_one/stage_test.rb +0 -42
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/rails.yml +0 -36
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/6_1.yml +0 -44
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/.env +0 -6
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/Dockerfile.tt +0 -28
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/config/initializers/sidekiq.rb +0 -13
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/docker-compose.yml.tt +0 -57
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/entrypoints/sidekiq-entrypoint.sh +0 -9
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one/stage_test.rb +0 -38
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/7_0.yml +0 -38
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/.env +0 -6
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/Dockerfile.tt +0 -28
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/config/initializers/sidekiq.rb +0 -13
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/docker-compose.yml.tt +0 -57
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/entrypoints/docker-entrypoint.sh +0 -9
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/entrypoints/sidekiq-entrypoint.sh +0 -9
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one/stage_test.rb +0 -37
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/okonomi.yml +0 -4
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/okonomi/templates/stage_one/.dockerignore +0 -18
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_one/Dockerfile.tt +0 -16
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_one/Gemfile.tt +0 -2
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_one/entrypoint.sh +0 -8
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/rails/templates/stage_two/database.yml.tt +0 -16
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/omakase/stories/wordpress/test/stage_one/stage_test.rb +0 -32
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test/stage_one/stage_test.rb +0 -32
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one/.env +0 -4
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one/.gitignore +0 -55
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/rails/test/stage_one/stage_test.rb +0 -33
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/roll_your_own.yml +0 -24
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/%interpolated_story_name%.yml.tt +0 -10
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test/stage_one/stage_test.rb.tt +0 -41
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/.gitignore.tt +0 -55
- data/lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/test/stage_one/stage_one_test.rb +0 -64
- data/lib/roro/stacks/library/roro/.keep +0 -0
- data/lib/roro/stacks/library/roro/docker_compose/docker-compose.yml +0 -22
- data/lib/roro/stacks/library/roro/k8s/k8s.yml +0 -15
- data/lib/roro/stacks/library/roro/plots/node/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/node/node.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/php/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/php/php.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/python/plots/django/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/python/plots/django/django.yml +0 -10
- data/lib/roro/stacks/library/roro/plots/python/plots/django/templates/Dockerfile +0 -7
- data/lib/roro/stacks/library/roro/plots/python/plots/django/templates/docker-compose.yml +0 -20
- data/lib/roro/stacks/library/roro/plots/python/plots/django/templates/requirements.txt +0 -2
- data/lib/roro/stacks/library/roro/plots/python/plots/flask/flask.yml +0 -0
- data/lib/roro/stacks/library/roro/plots/python/python.yml +0 -1
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/databases/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/databases/mysql.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/databases/postgres.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails/rails.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails/templates/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_react/rails_react.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_react/templates/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_vue/rails_vue.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/plots/rails_vue/templates/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/rails.yml +0 -16
- data/lib/roro/stacks/library/roro/plots/ruby/plots/rails/templates/.keep +0 -0
- data/lib/roro/stacks/library/roro/plots/ruby/plots/ruby_gem/ruby_gem.yml +0 -22
- data/lib/roro/stacks/library/roro/plots/ruby/ruby.yml +0 -22
- data/lib/roro/stacks/library/roro/roro/roro.yml +0 -15
- data/lib/roro/stacks/stories_v1/greenfield/rails.yml +0 -9
- data/lib/roro/stacks/stories_v1/greenfield/roro.yml +0 -7
- data/lib/roro/stacks/stories_v1/greenfield.yml +0 -1
- data/lib/roro/stacks/stories_v1/rollon/rails/ci_cd/circleci.yml +0 -2
- data/lib/roro/stacks/stories_v1/rollon/rails/ci_cd.yml +0 -1
- data/lib/roro/stacks/stories_v1/rollon/rails/database/mysql.yml +0 -17
- data/lib/roro/stacks/stories_v1/rollon/rails/database/postgresql.yml +0 -15
- data/lib/roro/stacks/stories_v1/rollon/rails/database.yml +0 -9
- data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes/postgresql/default.yml +0 -1
- data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes/postgresql/edge.yml +0 -1
- data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes/postgresql.yml +0 -10
- data/lib/roro/stacks/stories_v1/rollon/rails/kubernetes.yml +0 -1
- data/lib/roro/stacks/stories_v1/rollon/rails.yml +0 -76
- data/lib/roro/stacks/stories_v1/rollon/roro.yml +0 -5
- data/lib/roro/stacks/stories_v1/rollon/ruby_gem.yml +0 -5
- data/lib/roro/stacks/stories_v1/rollon.yml +0 -42
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/config.yml.tt +0 -11
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/jobs/_build.yml +0 -14
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/jobs/_push.yml +0 -11
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/jobs/_test.yml +0 -12
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/setup-gem-credentials.sh +0 -3
- data/lib/roro/stacks/stories_v1/templates/rails/.circleci/workflows/_build_test_push.yml +0 -12
- data/lib/roro/stacks/stories_v1/templates/rails/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/Dockerfile.greenfield.tt +0 -51
- data/lib/roro/stacks/stories_v1/templates/rails/config/database.mysql.yml +0 -19
- data/lib/roro/stacks/stories_v1/templates/rails/database/with_mysql/_service.yml +0 -10
- data/lib/roro/stacks/stories_v1/templates/rails/database/with_postgresql/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/database/with_postgresql/_service.yml +0 -7
- data/lib/roro/stacks/stories_v1/templates/rails/docker-compose.yml.tt +0 -59
- data/lib/roro/stacks/stories_v1/templates/rails/dotenv/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/dotenv/database.mysql.env.tt +0 -6
- data/lib/roro/stacks/stories_v1/templates/rails/dotenv/database.pg.env.tt +0 -4
- data/lib/roro/stacks/stories_v1/templates/rails/dotenv/web.env.tt +0 -2
- data/lib/roro/stacks/stories_v1/templates/rails/kube.rake.tt +0 -114
- data/lib/roro/stacks/stories_v1/templates/rails/roro/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/app/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/app/Dockerfile.tt +0 -34
- data/lib/roro/stacks/stories_v1/templates/rails/roro/containers/frontend/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/docker-entrypoint.sh +0 -8
- data/lib/roro/stacks/stories_v1/templates/rails/roro/keys/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/certificate.yml.tt +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/cluster-issuer.yml.tt +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployment.yml.tt +0 -50
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/postgres_deploy.yaml +0 -47
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/rails_deploy.yaml +0 -62
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/redis_deploy.yaml +0 -23
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/deployments/sidekiq_deploy.yaml +0 -56
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/ingress.yml.tt +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/ingresses/ingress.yaml +0 -13
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/job-migrate.yml.tt +0 -0
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/jobs/setup.yaml +0 -42
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/secret-digital-ocean.yml.tt +0 -4
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/service.yml.tt +0 -10
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/services/postgres_svc.yaml +0 -13
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/services/rails_svc.yaml +0 -13
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/services/redis_svc.yaml +0 -13
- data/lib/roro/stacks/stories_v1/templates/rails/roro/kube/volumes/postgres_volumes.yaml +0 -25
- data/lib/roro/stacks/stories_v1/templates/roro/containers/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/roro/containers/database/env/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/roro/containers/database/scripts/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/roro/env/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/roro/keys/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/bundler.sh +0 -22
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/git.sh +0 -21
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/rvm.sh +0 -38
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/base/utilities.sh +0 -53
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/base.sh +0 -6
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/clone_idea.sh +0 -14
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/clone_repos.sh +0 -33
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/install_correct_bundler.sh +0 -21
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize/install_rubies.sh +0 -6
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/initialize.sh +0 -18
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/roro.sh +0 -15
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/source.sh +0 -28
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/bundle_all.sh +0 -12
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/git_pull_all.sh +0 -15
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/rvm_install_all.sh +0 -12
- data/lib/roro/stacks/stories_v1/templates/roro/scripts/utility/yarn_install_all.sh +0 -10
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/config.yml.tt +0 -16
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/jobs/_test.yml +0 -4
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/.circleci/setup-gem-credentials.sh +0 -3
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/docker-compose.yml +0 -15
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/containers/.keep +0 -0
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/containers/ruby_image/Dockerfile.tt +0 -16
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/containers/ruby_image/ci.env.tt +0 -1
- data/lib/roro/stacks/stories_v1/templates/ruby_gem/roro/keys/.keep +0 -0
- data/mise/containers/backend/env/.keep +0 -0
- data/mise/containers/backend/scripts/.keep +0 -0
- data/mise/containers/database/env/.keep +0 -0
- data/mise/containers/database/scripts/.keep +0 -0
- data/mise/containers/frontend/env/.keep +0 -0
- data/mise/containers/frontend/scripts/.keep +0 -0
- data/mise/containers/ruby_gem/Dockerfile-app +0 -51
- data/mise/containers/ruby_gem/Dockerfile-ruby_gem +0 -16
- /data/{.circleci → lib/roro/stacks/unstoppable_developer_styles/okonomi/languages/php/adventures/laravel}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/test/stage_one/dummy → unstoppable_developer_styles/okonomi/languages/php/adventures/laravel/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/django/test/stage_two/dummy → unstoppable_developer_styles/okonomi/languages/php/adventures/wordpress/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one → unstoppable_developer_styles/okonomi/languages/php/adventures/wordpress/templates/partials}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/okonomi/languages/php/adventures}/wordpress/templates/stage_one/docker-compose.yml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test → unstoppable_developer_styles/okonomi/languages/php/adventures/wordpress/test/0}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/django}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/mysql/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/databases/postgres/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/test → unstoppable_developer_styles/okonomi/languages/python/frameworks/django/test/2/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one/Dockerfile → unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/manifest/Dockerfile.tt} +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/flask/templates/stage_one → unstoppable_developer_styles/okonomi/languages/python/frameworks/flask/templates/manifest}/app.py +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/test/stage_one → unstoppable_developer_styles/okonomi/languages/python/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/databases/postgres/templates/manifest}/config/database.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/python/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/resque/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/schedulers/sidekiq/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/templates/manifest}/entrypoints/docker-entrypoint.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/templates/stage_one/entrypoints → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/templates/stage_one}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/0/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_6_1/test/2/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/6_1/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/templates/partials}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one/entrypoints → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/templates/stage_one}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/2/dummy}/config/database.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories/rails/templates/stage_one/Gemfile.lock.tt → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/3/layers/postgres/config/database.yml} +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/okonomi/languages/ruby/stories/rails/versions/7_0/test/stage_one/stage_dummy → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/4/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/okonomi/languages/ruby/frameworks/rails/versions/rails_7_0/test/5/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/rails/rails.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/Dockerfile.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/Gemfile.lock.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/Gemfile.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/docker-compose.yml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_one/entrypoint.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/fatsufodo/stories → unstoppable_developer_styles/omakase/frameworks}/rails/templates/stage_two/database.yml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/test → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/LICENSE +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/README.md +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/build.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/cfg/nginx-custom-configs.conf +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/cfg/nginx-wp-hardening.conf +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/tpl/nginx-http.conf.template +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/nginx/tpl/nginx-https.conf.example +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/config/php.conf.ini +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/data/certbot/conf/.placeholder +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/data/certbot/www/.placeholder +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/docker-compose-build.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/docker-compose-dev.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/docker-compose-prod.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/dump_mysql.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/init_letsencrypt.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/mysql-dumps/.placeholder +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/push.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress/Dockerfile +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress/adduser.sh +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress-sql/.placeholder +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/templates/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/templates/manifest}/wordpress-src/.placeholder +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/test/stage_one → unstoppable_developer_styles/omakase/frameworks/wordpress/test}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/omakase/stories/wordpress/test/stage_one/stage_dummy → unstoppable_developer_styles/omakase/frameworks/wordpress/test/0/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles → unstoppable_developer_styles}/omakase/omakase.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1/.keep → unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/templates/stage_one/.gitignore} +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test → unstoppable_developer_styles/sashimi/devops/ci_styles/circleci/test/0/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/cert-manager.yml → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/cert_manager.yml} +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager}/templates/stage_2/echo_ingress.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager}/templates/stage_3/echo_ingress.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager}/templates/stage_3/ingress_nginx_svc.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates}/stage_one/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/echo1.yaml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/echo2.yaml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/echo_ingress.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/prod_issuer.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/templates/stage_1 → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/templates/stage_one}/staging_issuer.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/kubernetes/stories/ingress/stories/nginx/stories/cert-manager/test/stage_one/stage_dummy → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/test}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one → unstoppable_developer_styles/sashimi/frameworks/kubernetes/stories/ingress/stories/nginx/stories/cert_manager/test/0/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/rails.yml +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/templates/stage_one/k8s → unstoppable_developer_styles/sashimi/frameworks/rails/templates/stage_one}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/docker-compose.yml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/test → unstoppable_developer_styles/sashimi/frameworks/rails/templates/stage_one/k8s}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/app-deployment.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/app-service.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/database-deployment.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/database-service.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/db-data-persistentvolumeclaim.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/redis-deployment.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/redis-service.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/secret.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories → unstoppable_developer_styles/sashimi/frameworks}/rails/templates/stage_one/k8s/sidekiq-deployment.yaml.tt +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/test/stage_one → unstoppable_developer_styles/sashimi/frameworks/rails/test}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles/sashimi/stories/rails/test/stage_one/stage_dummy → unstoppable_developer_styles/sashimi/frameworks/rails/test/0/dummy}/.keep +0 -0
- /data/lib/roro/stacks/{catalog/unstoppable/developer_styles → unstoppable_developer_styles}/sashimi/sashimi.yml +0 -0
- /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/templates/stage_one → templates/adventure}/.keep +0 -0
- /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test → templates/adventure/templates/manifest}/.keep +0 -0
- /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test/stage_one → templates/adventure/test/0/dummy}/.keep +0 -0
- /data/lib/roro/{stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/templates/stage_one/%interpolated_stack_path%/test/stage_one/stage_dummy → templates/adventure_test/dummy}/.keep +0 -0
- /data/{lib/roro/stacks/catalog/unstoppable/developer_styles/sashimi/stories/roll_your_own/test/stage_one/dummy → mise/env}/.keep +0 -0
data/README.md
CHANGED
|
@@ -1,40 +1,23 @@
|
|
|
1
1
|
# RoRo
|
|
2
2
|
|
|
3
|
-
RoRo is a
|
|
3
|
+
RoRo is a CLI that runs best in a container and which you can use to:
|
|
4
4
|
|
|
5
|
-
1.
|
|
6
|
-
2.
|
|
7
|
-
3. Roll your
|
|
8
|
-
4. Roll
|
|
5
|
+
1. Roll your own greenfield app into a container.
|
|
6
|
+
2. Roll it off your container and onto your dev box.
|
|
7
|
+
3. Roll it off your dev box and onto source control.
|
|
8
|
+
4. Roll it off source control and onto ci/cd.
|
|
9
|
+
5. Roll it off ci/cd and onto your image repository.
|
|
10
|
+
6. Roll it off your image repository and onto your production servers.
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
### Install
|
|
12
|
+
You can also use it to safely manage and expose your environment variables in the containers and environmens that need them.
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
$ gem install roro
|
|
17
|
-
```
|
|
14
|
+
## Demo
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
$ roro --help
|
|
23
|
-
Commands:
|
|
24
|
-
roro expose # Expose encrypted files
|
|
25
|
-
roro generate_key # Generate a key for each environment
|
|
26
|
-
roro generate_keys # Generates keys for all environments. If you have .en...
|
|
27
|
-
roro omakase # Greenfield a brand new rails backend using Docker's inst...
|
|
28
|
-
roro help [COMMAND] # Describe available commands or one specific command
|
|
29
|
-
roro obfuscate # obfuscates any files matching the pattern ./docker/*...
|
|
30
|
-
roro rollon # Generates files necessary to omakase a new backend wi...
|
|
31
|
-
roro ruby_gem # Generate files for containerized gem testing, Circle...
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
However to use RoRo
|
|
16
|
+
[Here you go](https://www.youtube.com/watch?v=-BxJuUQk1XI)
|
|
35
17
|
|
|
18
|
+
## Getting started
|
|
36
19
|
|
|
37
|
-
### Docker and Docker Compose
|
|
20
|
+
### Check your Docker and Docker Compose Dependencies:
|
|
38
21
|
|
|
39
22
|
You'll need [Docker](https://docs.docker.com/install/) and [Docker Compose](https://docs.docker.com/compose/install/). To confirm Docker is installed:
|
|
40
23
|
|
|
@@ -50,170 +33,36 @@ $ docker-compose -v
|
|
|
50
33
|
docker-compose version 1.21.0, build 5920eb0
|
|
51
34
|
```
|
|
52
35
|
|
|
53
|
-
###
|
|
54
|
-
|
|
55
|
-
```bash
|
|
56
|
-
$ mkdir -p handsome_app
|
|
57
|
-
$ cd handsome_app
|
|
58
|
-
$ roro omakase
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
It'll take a few minutes for Docker to download your images, copy your files, and build your application but once finished, you'll see the Rails welcome screen at [http://localhost:3000](http://localhost:3000/).
|
|
62
|
-
|
|
63
|
-
### Rolling onto an existing app
|
|
36
|
+
### Greenfield a new app:
|
|
64
37
|
|
|
65
|
-
|
|
38
|
+
1. Most RoRo adventures will copy files from their container and onto your host machine. To avoid making a mess, make a new directory and navigate into it:
|
|
66
39
|
|
|
67
40
|
```bash
|
|
68
|
-
$
|
|
41
|
+
$ mkdir -p greenfield
|
|
42
|
+
$ cd greenfield
|
|
69
43
|
```
|
|
70
44
|
|
|
71
|
-
|
|
45
|
+
2. Use the RoRo CLI to generate a greenfield app inside the RoRo container and then copy it onto your development machine:
|
|
72
46
|
|
|
73
|
-
```
|
|
74
|
-
|
|
47
|
+
```shell
|
|
48
|
+
docker run \
|
|
49
|
+
--name artifact \
|
|
50
|
+
-v $PWD:/artifact \
|
|
51
|
+
-v /var/run/docker.sock:/var/run/docker.sock \
|
|
52
|
+
-u 0 \
|
|
53
|
+
-it handsomefencer/roro:latest roro rollon
|
|
75
54
|
```
|
|
76
55
|
|
|
77
|
-
|
|
56
|
+
### Note for Linux users
|
|
57
|
+
Once you've rolled your greenfielded app out of the RoRo container and onto your development machine, you'll want to establish ownership of them
|
|
78
58
|
|
|
79
59
|
```bash
|
|
80
60
|
$ sudo chown <username><user group> -R .
|
|
81
61
|
```
|
|
82
62
|
|
|
83
|
-
And spin it up:
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
$ docker-compose up --build
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
As with greenfielding above, wait a few minutes, and when it's finished, open [http://localhost:3000/](http://localhost:3000/).
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
### Guard and tests
|
|
93
|
-
|
|
94
|
-
From another terminal:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
$ docker-compose exec backend bundle exec guard
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
To use LiveReoload with Guard, install the Chrome [extension](https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei?hl=en):
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
## Deployment
|
|
104
|
-
|
|
105
|
-
### Securing environment files
|
|
106
|
-
|
|
107
|
-
Roro provides conventions for securing sensitive variables between docker containers and environments. To store a variable for use in development, create a file with that variable inside, name it "development.env," and store it in docker/env_files. Here's a one-liner:
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
$ echo "export EXAMPLE_KEY=example_value" > docker/env_files/development.env
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Next, generate a key for the development environment:
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
$ roro generate_key development
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
Then encrypt the development.env file using the previously generated development key:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
$ roro obfuscate development
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
You should now have the environment file and its encrypted counterpart:
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
$ ls docker/env_files
|
|
129
|
-
development.env development.env.enc
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
To see how decryption works, first back up a copy of your development.env file:
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
$ mv docker/env_files/development.env docker/env_files/backup.env
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
Then expose its encrypted counterpart:
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
$ roro expose development
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
You should now have three files:
|
|
145
|
-
|
|
146
|
-
```bash
|
|
147
|
-
$ ls docker/env_files
|
|
148
|
-
backup.env development.env development.env.enc
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
To verify the newly decrypted file's contents match those of its backup:
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
$ diff docker/env_files/development.env docker/env_files/backup.env
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## Notes
|
|
158
|
-
|
|
159
|
-
### Linux
|
|
160
|
-
|
|
161
|
-
If you're running linux you may need to change ownership of the newly created files, prepend commands with sudo, or both. To change ownership of newly generated files:
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
|
-
$ sudo chown <username><user group> -R .
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
If that doesn't work, Docker's [documentation](https://docs.docker.com/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user) should get you pointed in the right direction.
|
|
168
|
-
|
|
169
|
-
### Troubleshooting
|
|
170
|
-
|
|
171
|
-
#### Port in use
|
|
172
|
-
|
|
173
|
-
Sometimes you will ge a message saying the port specified in your docker-compose.yml file is already in use. This may be because you have a server running on your host from normal development, or because another Docker container is running a server and piping it to your host. If the former you can shut it down using ctrl^c, and if the latter:
|
|
174
|
-
|
|
175
|
-
```
|
|
176
|
-
$ docker-compose down
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Sometimes shutting down all servers isn't enough because a .pid file remains. You can usually remove it with:
|
|
180
|
-
|
|
181
|
-
```bash
|
|
182
|
-
$ rm /tmp/pids/server.pid
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
If that doesn't work, restart your machine.
|
|
186
|
-
|
|
187
|
-
#### Mismatched ruby versions
|
|
188
|
-
|
|
189
|
-
Sometimes your Gemfile will specify a ruby version which doesn't match the ruby version of the image your container is using. There are three ways to handle this. The first way is to specify an image with the same version of ruby as is in your Gemfile. Open your Dockerfile and change:
|
|
190
|
-
|
|
191
|
-
```
|
|
192
|
-
FROM ruby:2.5
|
|
193
|
-
```
|
|
194
|
-
to:
|
|
195
|
-
```
|
|
196
|
-
FROM ruby:2.5.x
|
|
197
|
-
```
|
|
198
|
-
...where 2.5.x is the ruby specified in your Gemfile. The second way is to specify the same version of ruby in your app container's image as at the top of your Gemfile:
|
|
199
|
-
|
|
200
|
-
```ruby
|
|
201
|
-
ruby '2.5.x'
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
The third way is to remove the ruby specification from your Gemfile, relying on your Dockerfile for ruby version management.
|
|
205
|
-
|
|
206
|
-
#### Get out of jail
|
|
207
|
-
|
|
208
|
-
To remove all images, containers, and volumes from your system and start over:
|
|
209
|
-
|
|
210
|
-
```bash
|
|
211
|
-
$ docker system prune -af --volumes
|
|
212
|
-
```
|
|
213
|
-
|
|
214
63
|
## Contributing
|
|
215
64
|
|
|
216
|
-
|
|
65
|
+
I can definitely use some help and if you have any thoughts about this, please open an issue.
|
|
217
66
|
|
|
218
67
|
## License
|
|
219
68
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/Rakefile
CHANGED
|
@@ -1,10 +1,42 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
2
|
+
require 'rake/testtask'
|
|
3
|
+
require 'json'
|
|
4
|
+
require 'yaml'
|
|
5
|
+
require 'roro'
|
|
3
6
|
|
|
4
|
-
Rake
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
Rake.add_rakelib 'rakelib/ci'
|
|
8
|
+
Rake.add_rakelib 'rakelib/ci/config'
|
|
9
|
+
Rake.add_rakelib 'rakelib/ci/matrices/run'
|
|
10
|
+
Rake.add_rakelib 'rakelib/ci/matrices/test_rollon'
|
|
11
|
+
Rake.add_rakelib 'rakelib/ci/matrices/test_rubies'
|
|
12
|
+
Rake.add_rakelib 'rakelib/ci/prepare/config'
|
|
13
|
+
Rake.add_rakelib 'rakelib/ci/prepare/workflows'
|
|
14
|
+
Rake.add_rakelib 'rakelib/ci/prepare'
|
|
15
|
+
Rake.add_rakelib 'rakelib/ci/test'
|
|
16
|
+
Rake.add_rakelib 'rakelib/ci/jobs'
|
|
17
|
+
Rake.add_rakelib 'rakelib/test'
|
|
18
|
+
Rake.add_rakelib 'rakelib/fixtures'
|
|
19
|
+
Rake.add_rakelib 'rakelib/fixtures/matrixes'
|
|
20
|
+
Rake.add_rakelib 'rakelib/docker/image'
|
|
21
|
+
Rake.add_rakelib 'rakelib/club'
|
|
22
|
+
Rake.add_rakelib 'rakelib/club/harvest'
|
|
23
|
+
|
|
24
|
+
Rake::TestTask.new('test') do |t|
|
|
25
|
+
t.libs << 'test'
|
|
26
|
+
# t.libs << "lib"
|
|
27
|
+
t.test_files = FileList['test/**/*_test.rb']
|
|
28
|
+
.exclude('test/fixtures/dummies/**/*')
|
|
8
29
|
end
|
|
9
30
|
|
|
10
|
-
|
|
31
|
+
# Rake::TestTask.new('test') do |t|
|
|
32
|
+
# t.libs << "test"
|
|
33
|
+
# t.libs << "lib"
|
|
34
|
+
# t.test_files = FileList["./**/*/_test.rb"]
|
|
35
|
+
# .exclude('test/fixtures/dummies/test_annotate/**/*')
|
|
36
|
+
# end
|
|
37
|
+
|
|
38
|
+
# Rake::TestTask.new('test:stacks') do |t|
|
|
39
|
+
# t.libs << "test"
|
|
40
|
+
# t.libs << "lib"
|
|
41
|
+
# t.test_files = FileList["./lib/roro/stacks/**/*_test.rb"]
|
|
42
|
+
# end
|
data/cases
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
---
|
data/docker-compose.yml
CHANGED
|
@@ -1,15 +1,35 @@
|
|
|
1
|
-
version: '3.
|
|
1
|
+
version: '3.5'
|
|
2
2
|
|
|
3
3
|
services:
|
|
4
4
|
|
|
5
5
|
ruby_gem:
|
|
6
|
+
image: handsomefencer/roro
|
|
6
7
|
build:
|
|
7
8
|
context: .
|
|
8
9
|
dockerfile: mise/containers/ruby_gem/Dockerfile
|
|
9
|
-
volumes:
|
|
10
|
-
- gem_cache:/gems
|
|
11
10
|
environment:
|
|
12
|
-
RUBY_VERSION
|
|
11
|
+
- RUBY_VERSION='2.5'
|
|
13
12
|
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
dev:
|
|
14
|
+
build:
|
|
15
|
+
context: .
|
|
16
|
+
dockerfile: mise/containers/ruby_gem/Dockerfile
|
|
17
|
+
working_dir: /usr/src
|
|
18
|
+
volumes:
|
|
19
|
+
- .:/usr/src
|
|
20
|
+
|
|
21
|
+
roro:
|
|
22
|
+
build:
|
|
23
|
+
context: .
|
|
24
|
+
dockerfile: mise/containers/ruby_gem/Dockerfile
|
|
25
|
+
image: handsomefencer/roro
|
|
26
|
+
guard:
|
|
27
|
+
build:
|
|
28
|
+
context: .
|
|
29
|
+
dockerfile: mise/containers/ruby_gem/Dockerfile
|
|
30
|
+
working_dir: /usr/src
|
|
31
|
+
volumes:
|
|
32
|
+
- .:/usr/src
|
|
33
|
+
environment:
|
|
34
|
+
- RAILS_ENV=development
|
|
35
|
+
command: bundle exec guard --no-bundler-warning
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Roro
|
|
4
|
+
class CLI < Thor
|
|
5
|
+
desc 'generate:adventure', 'Generate adventure for adventure tests.'
|
|
6
|
+
map 'generate:adventure' => 'generate_adventure'
|
|
7
|
+
|
|
8
|
+
method_options adventure: :string
|
|
9
|
+
|
|
10
|
+
def generate_adventure(adventure)
|
|
11
|
+
@env = { adventure_name: adventure.split('/').last }
|
|
12
|
+
location = "lib/roro/stacks/#{adventure}"
|
|
13
|
+
directory 'adventure', location, @env
|
|
14
|
+
generate_adventure_tests
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
no_commands do
|
|
18
|
+
def adventure_name
|
|
19
|
+
@env[:adventure_name]
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Roro
|
|
4
|
+
class CLI < Thor
|
|
5
|
+
desc 'generate:adventure_tests', 'Generate tests from stacks.'
|
|
6
|
+
map 'generate:adventure_tests' => 'generate_adventure_tests'
|
|
7
|
+
|
|
8
|
+
method_options adventure: :string
|
|
9
|
+
|
|
10
|
+
def generate_adventure_tests(kase = nil)
|
|
11
|
+
reflector = Roro::Configurators::Reflector.new
|
|
12
|
+
itineraries = reflector.itineraries
|
|
13
|
+
|
|
14
|
+
kases = kase ? [kase] : reflector.cases
|
|
15
|
+
kases.each_with_index do |choice, index|
|
|
16
|
+
@env = { adventure_title: itineraries[index].join(' & ') }
|
|
17
|
+
location = "test/roro/stacks/#{choice.join('/')}"
|
|
18
|
+
directory 'adventure_test', location, @env
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -13,6 +13,7 @@ module Roro
|
|
|
13
13
|
mise = Roro::CLI.mise
|
|
14
14
|
environments = args.empty? ? default_environments : args
|
|
15
15
|
containers = Dir.glob("./#{mise}/containers/*").select { |f| File.directory?(f) }
|
|
16
|
+
create_file "./#{mise}/env/.keep", ''
|
|
16
17
|
environments.each do |env|
|
|
17
18
|
content = hash&.dig(env.to_sym)&.each&.map {|k,v| "#{k}=#{v[:value]}"}&.join("\n") || 'SOME_KEY=some_value'
|
|
18
19
|
create_file "./#{mise}/env/#{env}.env", content
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Roro
|
|
4
|
+
class CLI < Thor
|
|
5
|
+
desc 'generate:harvest', 'Generate harvest.'
|
|
6
|
+
map 'generate:harvest' => 'generate_harvest'
|
|
7
|
+
|
|
8
|
+
def generate_harvest
|
|
9
|
+
reflector = Roro::Reflector.new
|
|
10
|
+
content = {
|
|
11
|
+
cases: reflector.cases.map { |c| c.join(' ') },
|
|
12
|
+
structure_human: reflector.adventure_structure_human,
|
|
13
|
+
structure_choices: reflector.adventure_structure_choices
|
|
14
|
+
# itineraries: harvest_itineraries,
|
|
15
|
+
# metadata: @reflector.metadata
|
|
16
|
+
}
|
|
17
|
+
content.each do |key, value|
|
|
18
|
+
create_file ".harvest/#{key}.yml", value.to_yaml
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
no_commands do
|
|
23
|
+
def harvest_itineraries
|
|
24
|
+
itineraries = {}
|
|
25
|
+
@reflector.itineraries.each do |i|
|
|
26
|
+
itineraries[harvest_adventure_title(i)] = 'blah'
|
|
27
|
+
end
|
|
28
|
+
itineraries
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def harvest_test_files
|
|
32
|
+
harvest = {}
|
|
33
|
+
harvest[:test_files] = gather_test_files
|
|
34
|
+
create_file '.harvest.yml', harvest.to_yaml
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def gather_test_files
|
|
38
|
+
Dir.glob("#{Dir.pwd}/lib/roro/stacks/**/*_test.rb")
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
data/lib/roro/cli/rollon.rb
CHANGED
|
@@ -9,12 +9,5 @@ module Roro
|
|
|
9
9
|
configurator.rollon
|
|
10
10
|
end
|
|
11
11
|
|
|
12
|
-
desc 'log itineraries', 'logs all possible itineraries in specified location'
|
|
13
|
-
map 'log_itineraries' => 'log_itineraries'
|
|
14
|
-
|
|
15
|
-
def log_itineraries(location = 'test/fixtures/itineraries')
|
|
16
|
-
builder = Roro::Configurators::AdventureCaseBuilder.new
|
|
17
|
-
builder.log_itineraries('test/fixtures/itineraries')
|
|
18
|
-
end
|
|
19
12
|
end
|
|
20
13
|
end
|
data/lib/roro/cli.rb
CHANGED
|
@@ -4,6 +4,18 @@ module Roro
|
|
|
4
4
|
class CLI < Thor
|
|
5
5
|
include Thor::Actions
|
|
6
6
|
|
|
7
|
+
def self.supported_rubies
|
|
8
|
+
%w[3.0 2.7 2.6 2.5]
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
def self.test_root
|
|
12
|
+
"#{ENV['PWD']}/test"
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def self.stacks
|
|
16
|
+
"#{File.dirname(__FILE__)}/stacks"
|
|
17
|
+
end
|
|
18
|
+
|
|
7
19
|
def self.source_root
|
|
8
20
|
"#{@template_root || File.dirname(__FILE__)}/templates"
|
|
9
21
|
end
|
|
@@ -13,7 +25,7 @@ module Roro
|
|
|
13
25
|
end
|
|
14
26
|
|
|
15
27
|
def self.dependency_root
|
|
16
|
-
"#{
|
|
28
|
+
"#{roro_root}/dependencies"
|
|
17
29
|
end
|
|
18
30
|
|
|
19
31
|
def self.catalog_root
|
|
@@ -22,11 +34,11 @@ module Roro
|
|
|
22
34
|
|
|
23
35
|
def self.mise_location
|
|
24
36
|
lookup = Dir.glob("#{Dir.pwd}/**/*.roro")&.first&.split("#{Dir.pwd}/")
|
|
25
|
-
if lookup
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
mise = if lookup
|
|
38
|
+
lookup.last.split('/').first
|
|
39
|
+
else
|
|
40
|
+
'roro'
|
|
41
|
+
end
|
|
30
42
|
"#{Dir.pwd}/#{mise}"
|
|
31
43
|
end
|
|
32
44
|
|
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
require 'json'
|
|
3
4
|
require 'yaml'
|
|
4
5
|
|
|
5
6
|
module Roro
|
|
6
7
|
module Utilities
|
|
7
|
-
|
|
8
8
|
def stack_type(stack)
|
|
9
|
-
|
|
10
|
-
when stack_not_present?(stack)
|
|
9
|
+
if stack_not_present?(stack)
|
|
11
10
|
:nonexistent
|
|
12
|
-
|
|
11
|
+
elsif stack_is_ignored?(stack)
|
|
13
12
|
:ignored
|
|
14
|
-
|
|
13
|
+
elsif stack_is_dotfile?(stack)
|
|
15
14
|
:dotfile
|
|
16
|
-
|
|
15
|
+
elsif stack_is_storyfile?(stack)
|
|
17
16
|
:storyfile
|
|
18
|
-
|
|
17
|
+
elsif stack_is_templates?(stack)
|
|
19
18
|
:templates
|
|
20
|
-
|
|
19
|
+
elsif stack_is_inflection_stub?(stack)
|
|
20
|
+
:inflection_stub
|
|
21
|
+
elsif stack_is_inflection?(stack)
|
|
21
22
|
:inflection
|
|
22
|
-
|
|
23
|
+
elsif stack_is_stack?(stack)
|
|
23
24
|
:stack
|
|
24
|
-
|
|
25
|
+
elsif stack_is_story?(stack)
|
|
25
26
|
:story
|
|
26
27
|
end
|
|
27
28
|
end
|
|
@@ -56,6 +57,21 @@ module Roro
|
|
|
56
57
|
!stack_is_dotfile?(stack)
|
|
57
58
|
end
|
|
58
59
|
|
|
60
|
+
def stack_is_inflection_stub?(stack)
|
|
61
|
+
return unless stack_is_inflection?(stack)
|
|
62
|
+
|
|
63
|
+
choices = children(stack).select do |c|
|
|
64
|
+
stack_is_inflection?(stack) &&
|
|
65
|
+
!stack_is_stack?(stack) &&
|
|
66
|
+
!stack_is_story?(stack) &&
|
|
67
|
+
!stack_is_templates?(stack) &&
|
|
68
|
+
!stack_is_ignored?(stack) &&
|
|
69
|
+
!stack_is_storyfile?(stack) &&
|
|
70
|
+
stack_is_stack?(c) || stack_is_story?(c)
|
|
71
|
+
end
|
|
72
|
+
choices.size < 2
|
|
73
|
+
end
|
|
74
|
+
|
|
59
75
|
def stack_is_inflection?(stack)
|
|
60
76
|
stack_stories(stack).empty? &&
|
|
61
77
|
!File.file?(stack) &&
|
|
@@ -127,7 +143,13 @@ module Roro
|
|
|
127
143
|
end
|
|
128
144
|
|
|
129
145
|
def stack_parent_path(stack)
|
|
130
|
-
stack.split("/#{
|
|
146
|
+
stack.split("/#{stack_name(stack)}").first
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
def stack_is_adventure?(stack)
|
|
150
|
+
!stack_type(stack).eql?(:templates) &&
|
|
151
|
+
stack_type(stack_parent_path(stack)).eql?(:inflection) &&
|
|
152
|
+
%i[stack story].include?(stack_type(stack))
|
|
131
153
|
end
|
|
132
154
|
|
|
133
155
|
def stack_is_empty?(stack)
|
|
@@ -142,6 +164,12 @@ module Roro
|
|
|
142
164
|
story_paths
|
|
143
165
|
end
|
|
144
166
|
|
|
167
|
+
def sort_hash_deeply(unsorted)
|
|
168
|
+
sorted ||= {}
|
|
169
|
+
unsorted.sort.to_h.map { |k, v| sorted[k] = sort_hash_deeply(v) }
|
|
170
|
+
sorted
|
|
171
|
+
end
|
|
172
|
+
|
|
145
173
|
def sanitize(hash)
|
|
146
174
|
(hash ||= {}).transform_keys!(&:to_sym).each do |key, value|
|
|
147
175
|
case value
|
|
@@ -157,7 +185,7 @@ module Roro
|
|
|
157
185
|
end
|
|
158
186
|
end
|
|
159
187
|
|
|
160
|
-
def
|
|
188
|
+
def stack_name(stack)
|
|
161
189
|
stack.split('/').last
|
|
162
190
|
end
|
|
163
191
|
|
|
@@ -173,7 +201,6 @@ module Roro
|
|
|
173
201
|
stack.split('/').last
|
|
174
202
|
end
|
|
175
203
|
|
|
176
|
-
|
|
177
204
|
def sentence_from(array)
|
|
178
205
|
array[1] ? "#{array[0..-2].join(', ')} and #{array[-1]}" : array[0]
|
|
179
206
|
end
|
|
@@ -181,5 +208,9 @@ module Roro
|
|
|
181
208
|
def read_yaml(yaml_file)
|
|
182
209
|
JSON.parse(YAML.load_file(yaml_file).to_json, symbolize_names: true)
|
|
183
210
|
end
|
|
211
|
+
|
|
212
|
+
def adventure_name(location)
|
|
213
|
+
"Adventure #{stack_parent(location)} #{location.split(Roro::CLI.stacks).last}" # .split('/')
|
|
214
|
+
end
|
|
184
215
|
end
|
|
185
216
|
end
|
|
@@ -11,7 +11,7 @@ module Roro
|
|
|
11
11
|
def initialize
|
|
12
12
|
@asker = AdventurePicker.new
|
|
13
13
|
@itinerary = []
|
|
14
|
-
@stack = Roro::CLI.
|
|
14
|
+
@stack = Roro::CLI.stacks
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
def build_itinerary(stack=nil)
|
|
@@ -21,13 +21,15 @@ module Roro
|
|
|
21
21
|
when :storyfile
|
|
22
22
|
@manifest << stack
|
|
23
23
|
when :story
|
|
24
|
+
@itinerary << stack.split("#{Roro::CLI.stacks}/").last
|
|
24
25
|
@manifest += stack_stories(stack)
|
|
25
26
|
when :stack
|
|
26
27
|
@manifest += stack_stories(stack)
|
|
27
28
|
children(stack).each { |c| build_itinerary(c) }
|
|
29
|
+
when :inflection_stub
|
|
30
|
+
children(stack).each { |c| build_itinerary(c) }
|
|
28
31
|
when :inflection
|
|
29
32
|
child = choose_adventure(stack)
|
|
30
|
-
@itinerary << child if stack_type(child).eql?(:story)
|
|
31
33
|
build_itinerary(child)
|
|
32
34
|
end
|
|
33
35
|
@manifest.uniq!
|
|
@@ -12,7 +12,7 @@ module Roro
|
|
|
12
12
|
def choose_adventure(stack)
|
|
13
13
|
build_inflection(stack)
|
|
14
14
|
say("Rolling story on from stack: #{@stack}\n\n")
|
|
15
|
-
say(@
|
|
15
|
+
say(@prompt)
|
|
16
16
|
choice = ask(@inflection)
|
|
17
17
|
story_name = story_from(choice.to_s)
|
|
18
18
|
"#{stack}/#{story_name}"
|
|
@@ -23,13 +23,13 @@ module Roro
|
|
|
23
23
|
prompt = inflection_prompt
|
|
24
24
|
options = inflection_options
|
|
25
25
|
prompt_options = humanize(options)
|
|
26
|
-
@
|
|
26
|
+
@prompt = "#{prompt}\n"
|
|
27
27
|
@inflection = ["#{prompt_options}\n\n", "Choices: [#{set_color(options.keys.map { |k| k.to_i }.join(' '), :blue)}]"]
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def inflection_prompt
|
|
31
31
|
prompt = 'Please choose from these'
|
|
32
|
-
collection =
|
|
32
|
+
collection = stack_name(@stack).gsub('_', ' ') + ":\n"
|
|
33
33
|
[prompt, stack_parent(@stack), collection].join(' ')
|
|
34
34
|
end
|
|
35
35
|
|
|
@@ -37,10 +37,10 @@ module Roro
|
|
|
37
37
|
stack ||= @stack
|
|
38
38
|
Hash.new.tap do |h|
|
|
39
39
|
children(stack)
|
|
40
|
-
.map { |f|
|
|
40
|
+
.map { |f| stack_name(f) }
|
|
41
41
|
.sort
|
|
42
42
|
.each_with_index do |c, i|
|
|
43
|
-
h[(i + 1).to_s] =
|
|
43
|
+
h[(i + 1).to_s] = stack_name(c)
|
|
44
44
|
end
|
|
45
45
|
end
|
|
46
46
|
end
|
|
@@ -55,9 +55,9 @@ module Roro
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
def get_story_preface(story)
|
|
58
|
-
storyfile = "#{story}/#{
|
|
58
|
+
storyfile = "#{story}/#{stack_name(story)}.yml"
|
|
59
59
|
if stack_is_storyfile?(storyfile)
|
|
60
|
-
read_yaml("#{story}/#{
|
|
60
|
+
read_yaml("#{story}/#{stack_name(story)}.yml")[:preface]
|
|
61
61
|
else
|
|
62
62
|
nil
|
|
63
63
|
end
|