geordi 2.4.0 → 2.5.0
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/CHANGELOG.md +17 -0
 - data/Gemfile +1 -1
 - data/Gemfile.lock +2 -8
 - data/README.md +13 -8
 - data/features/deploy.feature +24 -1
 - data/features/setup.feature +11 -0
 - data/features/support/env.rb +1 -1
 - data/lib/geordi/commands/deploy.rb +32 -14
 - data/lib/geordi/commands/setup.rb +15 -7
 - data/lib/geordi/version.rb +1 -1
 - metadata +3 -2
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 8209de927d9f973919406bcc485f908774db958aa66301baed5f7680ba6b0c42
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 19450383000e1ac02325f071a18e47b5e2c9dc59f10f2bc14cdde7283ffafa8e
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 6c57254616496d86a8b6930ef56a985e209311ce42e9152bc25e37e96df89161dd04801f95310a2c565116307fe18b6e5dd5623bd35aa1cbbb26ae4415513d3f
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: e6f62e4853962f109eba4e60758577fe7517ab4e04d1ee271f08e9a5f2e8666762770e5481de20b463377744dec9067e39886eeb2858b3ddb74f3e3a32a6ef40
         
     | 
    
        data/CHANGELOG.md
    CHANGED
    
    | 
         @@ -10,17 +10,34 @@ This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html 
     | 
|
| 
       10 
10 
     | 
    
         | 
| 
       11 
11 
     | 
    
         
             
            ### Breaking changes
         
     | 
| 
       12 
12 
     | 
    
         | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            ## 2.5.0 2019-10-25
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
            ### Compatible changes
         
     | 
| 
      
 17 
     | 
    
         
            +
            - Added [#69](https://github.com/makandra/geordi/issues/69): If bin/setup exists, prefer it over Geordi's standard setup routine.
         
     | 
| 
      
 18 
     | 
    
         
            +
            - Fixed [#48](https://github.com/makandra/geordi/issues/48): Bundle right before deploying
         
     | 
| 
      
 19 
     | 
    
         
            +
            - Improved [#56](https://github.com/makandra/geordi/issues/56): Print instructions how to set up `DEPLOY_BRANCH` when deploying the current branch.
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
            ## 2.4.0 2019-10-21
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            ### Compatible changes
         
     | 
| 
      
 25 
     | 
    
         
            +
            - [#56](https://github.com/makandra/geordi/issues/56): Add current branch option to "deploy" command. This actually sets the `DEPLOY_BRANCH` variable to the current branch during deployment. The deployed application needs to pick up this variable in the respective Capistrano stage file. Example: `set :branch, ENV['DEPLOY_BRANCH'] || 'master'`
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
       13 
28 
     | 
    
         
             
            ## 2.3.0 2019-08-27
         
     | 
| 
       14 
29 
     | 
    
         | 
| 
       15 
30 
     | 
    
         
             
            ### Compatible changes
         
     | 
| 
       16 
31 
     | 
    
         
             
            - Fixes [#70]: Make "console" and "server" commands ready for Rails 6
         
     | 
| 
       17 
32 
     | 
    
         
             
            - Added: CI testing with Travis
         
     | 
| 
       18 
33 
     | 
    
         | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
       19 
35 
     | 
    
         
             
            ## 2.2.0 2019-02-28
         
     | 
| 
       20 
36 
     | 
    
         | 
| 
       21 
37 
     | 
    
         
             
            ### Compatible changes
         
     | 
| 
       22 
38 
     | 
    
         
             
            - Fixes [#67]: Don't run yarn install unless needed
         
     | 
| 
       23 
39 
     | 
    
         | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
       24 
41 
     | 
    
         
             
            ## 2.1.0 2019-02-25
         
     | 
| 
       25 
42 
     | 
    
         | 
| 
       26 
43 
     | 
    
         
             
            ### Compatible changes
         
     | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            PATH
         
     | 
| 
       2 
2 
     | 
    
         
             
              remote: .
         
     | 
| 
       3 
3 
     | 
    
         
             
              specs:
         
     | 
| 
       4 
     | 
    
         
            -
                geordi (2. 
     | 
| 
      
 4 
     | 
    
         
            +
                geordi (2.5.0)
         
     | 
| 
       5 
5 
     | 
    
         
             
                  thor (>= 0.18.0)
         
     | 
| 
       6 
6 
     | 
    
         | 
| 
       7 
7 
     | 
    
         
             
            GEM
         
     | 
| 
         @@ -15,7 +15,6 @@ GEM 
     | 
|
| 
       15 
15 
     | 
    
         
             
                builder (3.2.3)
         
     | 
| 
       16 
16 
     | 
    
         
             
                childprocess (1.0.1)
         
     | 
| 
       17 
17 
     | 
    
         
             
                  rake (< 13.0)
         
     | 
| 
       18 
     | 
    
         
            -
                coderay (1.1.2)
         
     | 
| 
       19 
18 
     | 
    
         
             
                cucumber (1.3.20)
         
     | 
| 
       20 
19 
     | 
    
         
             
                  builder (>= 2.1.2)
         
     | 
| 
       21 
20 
     | 
    
         
             
                  diff-lcs (>= 1.1.3)
         
     | 
| 
         @@ -28,15 +27,11 @@ GEM 
     | 
|
| 
       28 
27 
     | 
    
         
             
                highline (1.6.21)
         
     | 
| 
       29 
28 
     | 
    
         
             
                launchy (2.4.3)
         
     | 
| 
       30 
29 
     | 
    
         
             
                  addressable (~> 2.3)
         
     | 
| 
       31 
     | 
    
         
            -
                method_source (0.9.2)
         
     | 
| 
       32 
30 
     | 
    
         
             
                multi_json (1.13.1)
         
     | 
| 
       33 
31 
     | 
    
         
             
                multi_test (0.1.2)
         
     | 
| 
       34 
32 
     | 
    
         
             
                parallel (0.5.16)
         
     | 
| 
       35 
33 
     | 
    
         
             
                parallel_tests (0.6.18)
         
     | 
| 
       36 
34 
     | 
    
         
             
                  parallel
         
     | 
| 
       37 
     | 
    
         
            -
                pry (0.12.2)
         
     | 
| 
       38 
     | 
    
         
            -
                  coderay (~> 1.1.0)
         
     | 
| 
       39 
     | 
    
         
            -
                  method_source (~> 0.9.0)
         
     | 
| 
       40 
35 
     | 
    
         
             
                rake (10.5.0)
         
     | 
| 
       41 
36 
     | 
    
         
             
                rspec-expectations (3.4.0)
         
     | 
| 
       42 
37 
     | 
    
         
             
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
         @@ -45,7 +40,7 @@ GEM 
     | 
|
| 
       45 
40 
     | 
    
         
             
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
       46 
41 
     | 
    
         
             
                  rspec-support (~> 3.4.0)
         
     | 
| 
       47 
42 
     | 
    
         
             
                rspec-support (3.4.1)
         
     | 
| 
       48 
     | 
    
         
            -
                thor (0. 
     | 
| 
      
 43 
     | 
    
         
            +
                thor (0.20.3)
         
     | 
| 
       49 
44 
     | 
    
         | 
| 
       50 
45 
     | 
    
         
             
            PLATFORMS
         
     | 
| 
       51 
46 
     | 
    
         
             
              ruby
         
     | 
| 
         @@ -56,7 +51,6 @@ DEPENDENCIES 
     | 
|
| 
       56 
51 
     | 
    
         
             
              highline
         
     | 
| 
       57 
52 
     | 
    
         
             
              launchy
         
     | 
| 
       58 
53 
     | 
    
         
             
              parallel_tests
         
     | 
| 
       59 
     | 
    
         
            -
              pry
         
     | 
| 
       60 
54 
     | 
    
         
             
              rspec-mocks
         
     | 
| 
       61 
55 
     | 
    
         | 
| 
       62 
56 
     | 
    
         
             
            BUNDLED WITH
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -96,10 +96,10 @@ Geordi will ask for confirmation before actually deleting files. 
     | 
|
| 
       96 
96 
     | 
    
         | 
| 
       97 
97 
     | 
    
         
             
            Guided deployment across branches.
         
     | 
| 
       98 
98 
     | 
    
         | 
| 
       99 
     | 
    
         
            -
            Example: `geordi deploy` or `geordi deploy p[roduction]`
         
     | 
| 
      
 99 
     | 
    
         
            +
            Example: `geordi deploy` or `geordi deploy p[roduction]` or `geordi deploy --current-branch`
         
     | 
| 
       100 
100 
     | 
    
         | 
| 
       101 
     | 
    
         
            -
            Merge, push and deploy with a single command!  
     | 
| 
       102 
     | 
    
         
            -
            this command  
     | 
| 
      
 101 
     | 
    
         
            +
            Merge, push and deploy with a single command! **It always tells what it will do
         
     | 
| 
      
 102 
     | 
    
         
            +
            before it does it.** There are different scenarios where this command is handy:
         
     | 
| 
       103 
103 
     | 
    
         | 
| 
       104 
104 
     | 
    
         
             
            1) *Production deploy:* From the master branch, run `geordi deploy production`.
         
     | 
| 
       105 
105 
     | 
    
         
             
               This will merge `master` to `production`, push and deploy to production.
         
     | 
| 
         @@ -107,6 +107,10 @@ this command comes in handy: 
     | 
|
| 
       107 
107 
     | 
    
         
             
            2) *Feature branch deploy:* From a feature branch, run `geordi deploy staging`.
         
     | 
| 
       108 
108 
     | 
    
         
             
               This will merge the feature branch to `master`, push and deploy to staging.
         
     | 
| 
       109 
109 
     | 
    
         | 
| 
      
 110 
     | 
    
         
            +
               To deploy a feature branch directly without merging, run
         
     | 
| 
      
 111 
     | 
    
         
            +
               `geordi deploy --current-branch`. This feature depends on the environment
         
     | 
| 
      
 112 
     | 
    
         
            +
               variable `DEPLOY_BRANCH` to be picked up in the respective deploy file.
         
     | 
| 
      
 113 
     | 
    
         
            +
             
     | 
| 
       110 
114 
     | 
    
         
             
            3) *Simple deploy:* If the source branch matches the target branch, merging will
         
     | 
| 
       111 
115 
     | 
    
         
             
               be skipped.
         
     | 
| 
       112 
116 
     | 
    
         | 
| 
         @@ -259,12 +263,15 @@ Setup a project for the first time. 
     | 
|
| 
       259 
263 
     | 
    
         | 
| 
       260 
264 
     | 
    
         
             
            Example: `geordi setup`
         
     | 
| 
       261 
265 
     | 
    
         | 
| 
       262 
     | 
    
         
            -
            Check out a repository 
     | 
| 
      
 266 
     | 
    
         
            +
            Check out a repository and cd into its directory. Then let `setup` do the tiring
         
     | 
| 
       263 
267 
     | 
    
         
             
            work: run `bundle install`, create `database.yml`, create databases, migrate
         
     | 
| 
       264 
268 
     | 
    
         
             
            (all if applicable).
         
     | 
| 
       265 
269 
     | 
    
         | 
| 
       266 
     | 
    
         
            -
             
     | 
| 
       267 
     | 
    
         
            -
             
     | 
| 
      
 270 
     | 
    
         
            +
            If a local bin/setup file is found, Geordi skips these steps runs bin/setup
         
     | 
| 
      
 271 
     | 
    
         
            +
            for setup instead.
         
     | 
| 
      
 272 
     | 
    
         
            +
             
     | 
| 
      
 273 
     | 
    
         
            +
            After setting up, loads a remote database dump into the development db when
         
     | 
| 
      
 274 
     | 
    
         
            +
            called with the `--dump` option:
         
     | 
| 
       268 
275 
     | 
    
         | 
| 
       269 
276 
     | 
    
         
             
                geordi setup -d staging
         
     | 
| 
       270 
277 
     | 
    
         | 
| 
         @@ -272,8 +279,6 @@ After setting up, runs all tests when called with the `--test` option: 
     | 
|
| 
       272 
279 
     | 
    
         | 
| 
       273 
280 
     | 
    
         
             
                geordi setup -t
         
     | 
| 
       274 
281 
     | 
    
         | 
| 
       275 
     | 
    
         
            -
            See `geordi help setup` for details.
         
     | 
| 
       276 
     | 
    
         
            -
             
     | 
| 
       277 
282 
     | 
    
         | 
| 
       278 
283 
     | 
    
         
             
            ### `geordi shell TARGET`
         
     | 
| 
       279 
284 
     | 
    
         | 
    
        data/features/deploy.feature
    CHANGED
    
    | 
         @@ -15,6 +15,7 @@ Feature: The deploy command 
     | 
|
| 
       15 
15 
     | 
    
         
             
                Then the output should contain:
         
     | 
| 
       16 
16 
     | 
    
         
             
                  """
         
     | 
| 
       17 
17 
     | 
    
         
             
                  # Checking whether your master branch is ready
         
     | 
| 
      
 18 
     | 
    
         
            +
                  Util.system! git checkout master
         
     | 
| 
       18 
19 
     | 
    
         
             
                  > All good.
         
     | 
| 
       19 
20 
     | 
    
         | 
| 
       20 
21 
     | 
    
         
             
                  # You are about to:
         
     | 
| 
         @@ -35,9 +36,31 @@ Feature: The deploy command 
     | 
|
| 
       35 
36 
     | 
    
         
             
                Deploying the current branch requires support by the deployed application:
         
     | 
| 
       36 
37 
     | 
    
         
             
                its deploy config needs to pick up the DEPLOY_BRANCH environment variable.
         
     | 
| 
       37 
38 
     | 
    
         | 
| 
      
 39 
     | 
    
         
            +
                When I run `geordi deploy --current-branch` interactively
         
     | 
| 
      
 40 
     | 
    
         
            +
                  # Answer deployment stage prompt
         
     | 
| 
      
 41 
     | 
    
         
            +
                  And I type "staging"
         
     | 
| 
      
 42 
     | 
    
         
            +
                Then the output should contain "configure config/deploy/staging.rb"
         
     | 
| 
      
 43 
     | 
    
         
            +
                  And the output should contain "ENV['DEPLOY_BRANCH']"
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                Given a file named "config/deploy/staging.rb" with:
         
     | 
| 
      
 46 
     | 
    
         
            +
                  """
         
     | 
| 
      
 47 
     | 
    
         
            +
                  set :branch, ENV['DEPLOY_BRANCH'] || 'master'
         
     | 
| 
      
 48 
     | 
    
         
            +
                  """
         
     | 
| 
       38 
49 
     | 
    
         
             
                When I run `geordi deploy --current-branch` interactively
         
     | 
| 
       39 
50 
     | 
    
         
             
                  # Answer deployment stage prompt
         
     | 
| 
       40 
51 
     | 
    
         
             
                  And I type "staging"
         
     | 
| 
       41 
52 
     | 
    
         
             
                  # Confirm deployment
         
     | 
| 
       42 
53 
     | 
    
         
             
                  And I type "yes"
         
     | 
| 
       43 
     | 
    
         
            -
                 
     | 
| 
      
 54 
     | 
    
         
            +
                # Current branch is always "master" during tests
         
     | 
| 
      
 55 
     | 
    
         
            +
                Then the output should contain "From current branch master"
         
     | 
| 
      
 56 
     | 
    
         
            +
                  And the output should contain "DEPLOY_BRANCH=master cap staging deploy:migrations"
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
              Scenario: Deploying with a given stage
         
     | 
| 
      
 60 
     | 
    
         
            +
                Given a file named "config/deploy/staging.rb" with "staging.rb exists"
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                When I run `geordi deploy staging` interactively
         
     | 
| 
      
 63 
     | 
    
         
            +
                  And I type "master"
         
     | 
| 
      
 64 
     | 
    
         
            +
                  And I type ""
         
     | 
| 
      
 65 
     | 
    
         
            +
                  And I type "no"
         
     | 
| 
      
 66 
     | 
    
         
            +
                Then the output should not contain "Deployment stage: [staging]"
         
     | 
| 
         @@ -0,0 +1,11 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            Feature: Project setup
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
              Scenario: A local bin/setup is preferred
         
     | 
| 
      
 4 
     | 
    
         
            +
                Given a file named "bin/setup" with "custom project setup"
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                When I run `geordi setup`
         
     | 
| 
      
 7 
     | 
    
         
            +
                Then the output should contain "Running bin/setup"
         
     | 
| 
      
 8 
     | 
    
         
            +
                  And the output should contain "Geordi's own setup routine is skipped"
         
     | 
| 
      
 9 
     | 
    
         
            +
                  And the output should contain "Util.system! bin/setup"
         
     | 
| 
      
 10 
     | 
    
         
            +
                  And the output should not contain "Creating databases"
         
     | 
| 
      
 11 
     | 
    
         
            +
                But the output should contain "Successfully set up the project"
         
     | 
    
        data/features/support/env.rb
    CHANGED
    
    
| 
         @@ -1,9 +1,9 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            desc 'deploy [STAGE]', 'Guided deployment across branches'
         
     | 
| 
       2 
2 
     | 
    
         
             
            long_desc <<-LONGDESC
         
     | 
| 
       3 
     | 
    
         
            -
            Example: `geordi deploy` or `geordi deploy p[roduction]`
         
     | 
| 
      
 3 
     | 
    
         
            +
            Example: `geordi deploy` or `geordi deploy p[roduction]` or `geordi deploy --current-branch`
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            Merge, push and deploy with a single command!  
     | 
| 
       6 
     | 
    
         
            -
            this command  
     | 
| 
      
 5 
     | 
    
         
            +
            Merge, push and deploy with a single command! **It always tells what it will do
         
     | 
| 
      
 6 
     | 
    
         
            +
            before it does it.** There are different scenarios where this command is handy:
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
8 
     | 
    
         
             
            1) *Production deploy:* From the master branch, run `geordi deploy production`.
         
     | 
| 
       9 
9 
     | 
    
         
             
               This will merge `master` to `production`, push and deploy to production.
         
     | 
| 
         @@ -11,6 +11,10 @@ this command comes in handy: 
     | 
|
| 
       11 
11 
     | 
    
         
             
            2) *Feature branch deploy:* From a feature branch, run `geordi deploy staging`.
         
     | 
| 
       12 
12 
     | 
    
         
             
               This will merge the feature branch to `master`, push and deploy to staging.
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
      
 14 
     | 
    
         
            +
               To deploy a feature branch directly without merging, run
         
     | 
| 
      
 15 
     | 
    
         
            +
               `geordi deploy --current-branch`. This feature depends on the environment
         
     | 
| 
      
 16 
     | 
    
         
            +
               variable `DEPLOY_BRANCH` to be picked up in the respective deploy file.
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
       14 
18 
     | 
    
         
             
            3) *Simple deploy:* If the source branch matches the target branch, merging will
         
     | 
| 
       15 
19 
     | 
    
         
             
               be skipped.
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
         @@ -28,7 +32,7 @@ LONGDESC 
     | 
|
| 
       28 
32 
     | 
    
         | 
| 
       29 
33 
     | 
    
         
             
            option :no_migrations, :aliases => '-M', :type => :boolean,
         
     | 
| 
       30 
34 
     | 
    
         
             
              :desc => 'Run cap deploy instead of cap deploy:migrations'
         
     | 
| 
       31 
     | 
    
         
            -
            option :current_branch, :aliases => '- 
     | 
| 
      
 35 
     | 
    
         
            +
            option :current_branch, :aliases => '-c', :type => :boolean,
         
     | 
| 
       32 
36 
     | 
    
         
             
              :desc => 'Set DEPLOY_BRANCH to the current branch during deploy'
         
     | 
| 
       33 
37 
     | 
    
         | 
| 
       34 
38 
     | 
    
         
             
            def deploy(target_stage = nil)
         
     | 
| 
         @@ -37,12 +41,20 @@ def deploy(target_stage = nil) 
     | 
|
| 
       37 
41 
     | 
    
         
             
              if target_stage and not Util.deploy_targets.include? target_stage
         
     | 
| 
       38 
42 
     | 
    
         
             
                # Target stage autocompletion from available stages
         
     | 
| 
       39 
43 
     | 
    
         
             
                target_stage = Util.deploy_targets.find { |t| t.start_with? target_stage }
         
     | 
| 
      
 44 
     | 
    
         
            +
                target_stage || warn('Given deployment stage not found')
         
     | 
| 
       40 
45 
     | 
    
         
             
              end
         
     | 
| 
       41 
     | 
    
         
            -
              proposed_stage = target_stage || branch_stage_map.fetch(Util.current_branch, 'staging')
         
     | 
| 
       42 
46 
     | 
    
         | 
| 
       43 
47 
     | 
    
         
             
              # Ask for required information
         
     | 
| 
       44 
     | 
    
         
            -
              target_stage  
     | 
| 
      
 48 
     | 
    
         
            +
              target_stage ||= prompt 'Deployment stage:', branch_stage_map.fetch(Util.current_branch, 'staging')
         
     | 
| 
       45 
49 
     | 
    
         
             
              if options.current_branch
         
     | 
| 
      
 50 
     | 
    
         
            +
                stage_file = "config/deploy/#{target_stage}.rb"
         
     | 
| 
      
 51 
     | 
    
         
            +
                Util.file_containing? stage_file, 'DEPLOY_BRANCH' or fail <<-ERROR
         
     | 
| 
      
 52 
     | 
    
         
            +
            To deploy from the current branch, configure #{stage_file} to respect the
         
     | 
| 
      
 53 
     | 
    
         
            +
            environment variable DEPLOY_BRANCH. Example:
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            set :branch, ENV['DEPLOY_BRANCH'] || 'master'
         
     | 
| 
      
 56 
     | 
    
         
            +
                ERROR
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
       46 
58 
     | 
    
         
             
                source_branch = target_branch = Util.current_branch
         
     | 
| 
       47 
59 
     | 
    
         
             
              else
         
     | 
| 
       48 
60 
     | 
    
         
             
                source_branch = prompt 'Source branch:', Util.current_branch
         
     | 
| 
         @@ -53,7 +65,8 @@ def deploy(target_stage = nil) 
     | 
|
| 
       53 
65 
     | 
    
         
             
              push_needed = merge_needed || `git cherry -v | wc -l`.strip.to_i > 0
         
     | 
| 
       54 
66 
     | 
    
         
             
              push_needed = false if Util.testing? # Hard to test
         
     | 
| 
       55 
67 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
              announce "Checking whether your #{source_branch} branch is ready"
         
     | 
| 
      
 68 
     | 
    
         
            +
              announce "Checking whether your #{source_branch} branch is ready" ############
         
     | 
| 
      
 69 
     | 
    
         
            +
              Util.system! "git checkout #{source_branch}"
         
     | 
| 
       57 
70 
     | 
    
         
             
              if `git status -s | wc -l`.strip != '0' and not Util.testing?
         
     | 
| 
       58 
71 
     | 
    
         
             
                warn "Your #{source_branch} branch holds uncommitted changes."
         
     | 
| 
       59 
72 
     | 
    
         
             
                prompt('Continue anyway?', 'n', /y|yes/) or fail 'Cancelled.'
         
     | 
| 
         @@ -73,25 +86,30 @@ def deploy(target_stage = nil) 
     | 
|
| 
       73 
86 
     | 
    
         
             
                Util.system! "git --no-pager log origin/#{target_branch}..#{source_branch} --oneline"
         
     | 
| 
       74 
87 
     | 
    
         
             
              end
         
     | 
| 
       75 
88 
     | 
    
         
             
              note "Deploy to #{target_stage}"
         
     | 
| 
      
 89 
     | 
    
         
            +
              note "From current branch #{source_branch}" if options.current_branch
         
     | 
| 
       76 
90 
     | 
    
         | 
| 
       77 
91 
     | 
    
         
             
              if prompt('Go ahead with the deployment?', 'n', /y|yes/)
         
     | 
| 
      
 92 
     | 
    
         
            +
                puts
         
     | 
| 
      
 93 
     | 
    
         
            +
                git_call = []
         
     | 
| 
      
 94 
     | 
    
         
            +
                git_call << "git merge #{source_branch}" if merge_needed
         
     | 
| 
      
 95 
     | 
    
         
            +
                git_call << 'git push' if push_needed
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
       78 
97 
     | 
    
         
             
                capistrano_call = "cap #{target_stage} deploy"
         
     | 
| 
       79 
98 
     | 
    
         
             
                capistrano_call << ':migrations' unless Util.gem_major_version('capistrano') == 3 || options.no_migrations
         
     | 
| 
       80 
99 
     | 
    
         
             
                capistrano_call = "bundle exec #{capistrano_call}" if Util.file_containing?('Gemfile', /capistrano/)
         
     | 
| 
       81 
100 
     | 
    
         
             
                capistrano_call = "DEPLOY_BRANCH=#{source_branch} #{capistrano_call}" if options.current_branch
         
     | 
| 
       82 
101 
     | 
    
         | 
| 
      
 102 
     | 
    
         
            +
                if git_call.any?
         
     | 
| 
      
 103 
     | 
    
         
            +
                  Util.system! git_call.join(' && '), :show_cmd => true
         
     | 
| 
      
 104 
     | 
    
         
            +
                end
         
     | 
| 
      
 105 
     | 
    
         
            +
             
     | 
| 
       83 
106 
     | 
    
         
             
                invoke_cmd 'bundle_install'
         
     | 
| 
       84 
     | 
    
         
            -
                invoke_cmd 'yarn_install'
         
     | 
| 
       85 
107 
     | 
    
         | 
| 
       86 
     | 
    
         
            -
                 
     | 
| 
       87 
     | 
    
         
            -
                commands = []
         
     | 
| 
       88 
     | 
    
         
            -
                commands << "git merge #{source_branch}" if merge_needed
         
     | 
| 
       89 
     | 
    
         
            -
                commands << 'git push' if push_needed
         
     | 
| 
       90 
     | 
    
         
            -
                commands << capistrano_call
         
     | 
| 
       91 
     | 
    
         
            -
                Util.system! commands.join(' && '), :show_cmd => true
         
     | 
| 
      
 108 
     | 
    
         
            +
                Util.system! capistrano_call, :show_cmd => true
         
     | 
| 
       92 
109 
     | 
    
         | 
| 
       93 
110 
     | 
    
         
             
                success 'Deployment complete.'
         
     | 
| 
       94 
111 
     | 
    
         
             
              else
         
     | 
| 
      
 112 
     | 
    
         
            +
                Util.system! "git checkout #{source_branch}"
         
     | 
| 
       95 
113 
     | 
    
         
             
                fail 'Deployment cancelled.'
         
     | 
| 
       96 
114 
     | 
    
         
             
              end
         
     | 
| 
       97 
115 
     | 
    
         | 
| 
         @@ -2,20 +2,21 @@ desc 'setup', 'Setup a project for the first time' 
     | 
|
| 
       2 
2 
     | 
    
         
             
            long_desc <<-LONGDESC
         
     | 
| 
       3 
3 
     | 
    
         
             
            Example: `geordi setup`
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
     | 
    
         
            -
            Check out a repository 
     | 
| 
      
 5 
     | 
    
         
            +
            Check out a repository and cd into its directory. Then let `setup` do the tiring
         
     | 
| 
       6 
6 
     | 
    
         
             
            work: run `bundle install`, create `database.yml`, create databases, migrate
         
     | 
| 
       7 
7 
     | 
    
         
             
            (all if applicable).
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
      
 9 
     | 
    
         
            +
            If a local bin/setup file is found, Geordi skips these steps runs bin/setup
         
     | 
| 
      
 10 
     | 
    
         
            +
            for setup instead.
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            After setting up, loads a remote database dump into the development db when
         
     | 
| 
      
 13 
     | 
    
         
            +
            called with the `--dump` option:
         
     | 
| 
       11 
14 
     | 
    
         | 
| 
       12 
15 
     | 
    
         
             
                geordi setup -d staging
         
     | 
| 
       13 
16 
     | 
    
         | 
| 
       14 
17 
     | 
    
         
             
            After setting up, runs all tests when called with the `--test` option:
         
     | 
| 
       15 
18 
     | 
    
         | 
| 
       16 
19 
     | 
    
         
             
                geordi setup -t
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
            See `geordi help setup` for details.
         
     | 
| 
       19 
20 
     | 
    
         
             
            LONGDESC
         
     | 
| 
       20 
21 
     | 
    
         | 
| 
       21 
22 
     | 
    
         
             
            option :dump, :type => :string, :aliases => '-d', :banner => 'TARGET',
         
     | 
| 
         @@ -23,8 +24,15 @@ option :dump, :type => :string, :aliases => '-d', :banner => 'TARGET', 
     | 
|
| 
       23 
24 
     | 
    
         
             
            option :test, :type => :boolean, :aliases => '-t', :desc => 'After setup, run tests'
         
     | 
| 
       24 
25 
     | 
    
         | 
| 
       25 
26 
     | 
    
         
             
            def setup
         
     | 
| 
       26 
     | 
    
         
            -
               
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 27 
     | 
    
         
            +
              if File.exists? 'bin/setup'
         
     | 
| 
      
 28 
     | 
    
         
            +
                announce 'Running bin/setup'
         
     | 
| 
      
 29 
     | 
    
         
            +
                note "Geordi's own setup routine is skipped"
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                Util.system! 'bin/setup'
         
     | 
| 
      
 32 
     | 
    
         
            +
              else
         
     | 
| 
      
 33 
     | 
    
         
            +
                invoke_cmd 'create_databases'
         
     | 
| 
      
 34 
     | 
    
         
            +
                invoke_cmd 'migrate'
         
     | 
| 
      
 35 
     | 
    
         
            +
              end
         
     | 
| 
       28 
36 
     | 
    
         | 
| 
       29 
37 
     | 
    
         
             
              success 'Successfully set up the project.'
         
     | 
| 
       30 
38 
     | 
    
         | 
    
        data/lib/geordi/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: geordi
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 2. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 2.5.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Henning Koch
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2019-10- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2019-10-25 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: thor
         
     | 
| 
         @@ -83,6 +83,7 @@ files: 
     | 
|
| 
       83 
83 
     | 
    
         
             
            - features/dump.feature
         
     | 
| 
       84 
84 
     | 
    
         
             
            - features/firefox.feature
         
     | 
| 
       85 
85 
     | 
    
         
             
            - features/server.feature
         
     | 
| 
      
 86 
     | 
    
         
            +
            - features/setup.feature
         
     | 
| 
       86 
87 
     | 
    
         
             
            - features/shell.feature
         
     | 
| 
       87 
88 
     | 
    
         
             
            - features/support/env.rb
         
     | 
| 
       88 
89 
     | 
    
         
             
            - features/support/step_definitions/aruba_backport_steps.rb
         
     |