wildland_dev_tools 1.0.0 → 1.0.2
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/README.md +38 -28
- data/lib/tasks/heroku.rake +7 -1
- data/lib/tasks/reports.rake +3 -24
- data/lib/wildland_dev_tools/heroku.rb +10 -0
- data/lib/wildland_dev_tools/version.rb +1 -1
- data/wildland_dev_tools.gemspec +5 -3
- metadata +48 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8de6d28a97cdb7086dfbd84528090eaf77c70b36
|
4
|
+
data.tar.gz: ee444d8de3cd5af3cdfaf18e9a93c40e0c4b5e00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1bff2a26651dc1771fc9a477c5ea81069c5105be4000e2bbfd550fd435fd9e2cece188fbb0b5ece4c7092b7177edb31c22a5441d8cb863c28fc4c4f16728549
|
7
|
+
data.tar.gz: 6100ac430ef9ffa4fb080359591c94d5b0fc2a895f3a8bca613aaa2a9497a9785c087ca9c278c7b1b4da69f4e6e7d64c747c079c2bd61061f235eaadde321da4
|
data/README.md
CHANGED
@@ -4,57 +4,67 @@ These are most useful for projects created by [trailhead](https://github.com/wil
|
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
Add the following to your `Gemfile`:
|
7
|
+
- Add the following to your `Gemfile`:
|
8
8
|
|
9
|
-
`gem 'wildland_dev_tools', '~>1.0
|
9
|
+
`gem 'wildland_dev_tools', '~>1.0'`
|
10
10
|
|
11
11
|
Typically for wildland projects you will want to put this inside the dev/test block:
|
12
12
|
```
|
13
13
|
group :development, :test do
|
14
14
|
...
|
15
|
-
gem 'wildland_dev_tools', '~>1.0
|
15
|
+
gem 'wildland_dev_tools', '~>1.0'
|
16
16
|
...
|
17
17
|
end
|
18
18
|
```
|
19
19
|
|
20
|
-
|
20
|
+
- Run `bundle install` to install the gem.
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
-
|
26
|
-
- `heroku git:remote -a <
|
22
|
+
**[Heroku Tasks](https://github.com/wildland/wildland_dev_tools#heroku-tasks) require the following steps**
|
23
|
+
- Install the [heroku CLI](https://devcenter.heroku.com/articles/heroku-cli).
|
24
|
+
- For OSx users you can do this using brew by running `brew install heroku`.
|
25
|
+
- Ensure you have your `production` and `staging` git remotes set.
|
26
|
+
- `heroku git:remote -a <staging-app> -r staging` where `<staging-app>` is your heroku staging app name.
|
27
|
+
- `heroku git:remote -a <production-app> -r production` where `<production-app>` is your heroku production app name.
|
28
|
+
|
29
|
+
*Common Install Fixes*
|
30
|
+
- If `bundle install` borks on `pg_config` then set the `Pg_config path` with `bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/{YOUR VERSION}/bin/pg_config`
|
27
31
|
|
28
32
|
|
29
33
|
## Usage
|
30
34
|
You will get a new batch of new rake tasks under the wildland namespace. For a full list run `rake -T`.
|
31
35
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
*Double Note: if `bundle install` borks on `pg_config` then set the `Pg_config path` with `bundle config build.pg --with-pg-config=/Applications/Postgres.app/Contents/Versions/{YOUR VERSION}/bin/pg_config`
|
36
|
-
|
37
|
-
- `rake wildland:setup` This will run all of the setup tasks to get your local enviroment ready to go.
|
36
|
+
## Common Development Tasks
|
37
|
+
- `rake wildland` or `rake wildland:setup` This will run all of the setup tasks to get your local enviroment ready to go.
|
38
38
|
- `rake wildland:db` This will resetup and seed the local database.
|
39
39
|
- `rake wildland:cache_clear` This will clear the local app-ember package cache.
|
40
|
-
- `rake wildland:pre_deploy` This will run all of the pre-deploy tasks to get the project ready to deploy.
|
41
|
-
- `rake wildland:pre_pr` Convenience alias to `rake wildland:pre_pull_request`.
|
42
|
-
- `rake wildland:pre_pull_request` This will run all of the pre pull request tasks to get the project ready for a pull request.
|
43
40
|
|
44
|
-
|
41
|
+
## Code Quality Tasks
|
42
|
+
- `rake wildland:pre_pr` or `rake wildland:pre_pull_request` This will run all pre-pull request checks.
|
43
|
+
- `rake wildland:pre_pull_request:fixme_notes` Print only FIXME notes
|
44
|
+
- `rake wildland:pre_pull_request:html` Run brakeman & rubocop with html formats and save them to /reports
|
45
|
+
- `rake wildland:pre_pull_request:js_debugger` Find js debugger statements
|
46
|
+
- `rake wildland:pre_pull_request:notes` Create a report on all notes
|
47
|
+
- `rake wildland:pre_pull_request:rubocop_recent` Run rubocop against all created/changed ruby files
|
48
|
+
- `rake wildland:pre_pull_request:rubocop_recent[autocorrect]` This perform the deploy as above, but have rubocop attempt to autocorrect issues.
|
49
|
+
|
50
|
+
## Heroku Tasks
|
51
|
+
### Deploying
|
45
52
|
- `rake wildland:heroku:deploy_to_staging` This will deploy `master` to `staging`. This will automatically create a release candidate git tag.
|
46
|
-
- `rake wildland:heroku:deploy_to_staging[verbose]` This perform the deploy as above, but in verbose mode.
|
47
|
-
-
|
48
|
-
-
|
49
|
-
-
|
50
|
-
-
|
53
|
+
- `rake wildland:heroku:deploy_to_staging[verbose]` This perform the deploy as above, but in verbose mode.
|
54
|
+
- `rake wildland:heroku:deploy_to_staging[verbose,force]` This perform the deploy as above, but this will `--force` deploy `master` to `staging`.
|
55
|
+
- `rake wildland:heroku:deploy_current_branch_to_staging` This will promote your current branch to `staging` as `master`. This will **NOT** automatically create a release candidate git tag.
|
56
|
+
- `rake wildland:heroku:deploy_current_branch_to_staging[verbose]` This perform the deploy as above, but in verbose mode.
|
57
|
+
- `rake wildland:heroku:deploy_current_branch_to_staging[verbose,force]` This perform the deploy as above, but this will `--force` deploy your current branch to `staging`.
|
51
58
|
- `rake wildland:heroku:promote_to_production` This will promote `staging` to `production`. This will automatically create a production git tag.
|
52
|
-
- `rake wildland:heroku:promote_to_production[verbose]` This perform the deploy as above, but in verbose mode.
|
59
|
+
- `rake wildland:heroku:promote_to_production[verbose]` This perform the deploy as above, but in verbose mode.
|
60
|
+
|
61
|
+
### Utility
|
53
62
|
- `rake wildland:heroku:maintenance_mode_on` This turns on maintenance mode for `staging` and `production`.
|
54
63
|
- `rake wildland:heroku:maintenance_mode_off` This turns off maintenance mode for `staging` and `production`.
|
55
|
-
- `rake wildland:heroku:backup_production_database
|
56
|
-
- `rake wildland:heroku:
|
57
|
-
|
64
|
+
- `rake wildland:heroku:backup_production_database` This will create a backup of the `production` database.
|
65
|
+
- `rake wildland:heroku:backup_production_database[verbose]` This perform the deploy as above, but in verbose mode.
|
66
|
+
- `rake wildland:heroku:import_latest_production_database_backup` This will import the latest `production` database backup to your local database.
|
67
|
+
- `rake wildland:heroku:import_latest_production_database_backup[verbose]` This perform the deploy as above, but in verbose mode.
|
58
68
|
|
59
69
|
## Code Of Conduct
|
60
70
|
Wildland Open Source [Code Of Conduct](https://github.com/wildland/code-of-conduct)
|
data/lib/tasks/heroku.rake
CHANGED
@@ -8,6 +8,12 @@ namespace :wildland do
|
|
8
8
|
Rake::Task['db:migrate'].invoke
|
9
9
|
end
|
10
10
|
|
11
|
+
desc 'Imports the latest staging database backup to local database.'
|
12
|
+
task :import_latest_staging_database_backup, [:verbose] => [:check_remotes, :check_heroku] do |_t, args| # rubocop:disable Metrics/LineLength
|
13
|
+
WildlandDevTools::Heroku.import_staging_database(args[:verbose])
|
14
|
+
Rake::Task['db:migrate'].invoke
|
15
|
+
end
|
16
|
+
|
11
17
|
desc 'Backups production database'
|
12
18
|
task :backup_production_database, [:verbose] => [:check_remotes, :check_heroku] do |_t, args| # rubocop:disable Metrics/LineLength
|
13
19
|
WildlandDevTools::Heroku.backup_production_database(args[:verbose])
|
@@ -73,7 +79,7 @@ namespace :wildland do
|
|
73
79
|
rescue WildlandDevTools::GitSyncException => e
|
74
80
|
puts e
|
75
81
|
end
|
76
|
-
end
|
82
|
+
end
|
77
83
|
|
78
84
|
desc 'Turns on maintenance mode for both heroku remotes.'
|
79
85
|
task :maintenance_mode_on do
|
data/lib/tasks/reports.rake
CHANGED
@@ -70,33 +70,12 @@ namespace :wildland do
|
|
70
70
|
puts 'Running rubocop...'
|
71
71
|
require 'rubocop'
|
72
72
|
|
73
|
-
|
74
|
-
# :nodoc:
|
75
|
-
class TargetFinder
|
76
|
-
def find(_args)
|
77
|
-
changed_git_files = `git diff --name-only --cached`.split(/\n/)
|
78
|
-
|
79
|
-
rubocop_target_finder = RuboCop::TargetFinder.new(
|
80
|
-
RuboCop::ConfigStore.new
|
81
|
-
)
|
82
|
-
rubocop_config_store = RuboCop::ConfigStore.new
|
83
|
-
rubocop_base_config = rubocop_config_store.for(
|
84
|
-
File.expand_path(__dir__)
|
85
|
-
)
|
86
|
-
|
87
|
-
files_to_check = changed_git_files.select do |file|
|
88
|
-
rubocop_target_finder.to_inspect?(file, [], rubocop_base_config)
|
89
|
-
end
|
90
|
-
|
91
|
-
files_to_check
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
73
|
+
changed_git_files = `git diff --name-only --cached`.split(/\n/)
|
95
74
|
|
96
75
|
if args[:autocorrect]
|
97
|
-
exit RuboCop::CLI.new.run(['-aD'])
|
76
|
+
exit RuboCop::CLI.new.run(changed_git_files.concat(['-aD']))
|
98
77
|
else
|
99
|
-
exit RuboCop::CLI.new.run(['-D'])
|
78
|
+
exit RuboCop::CLI.new.run(changed_git_files.concat(['-D']))
|
100
79
|
end
|
101
80
|
end
|
102
81
|
end
|
@@ -84,6 +84,16 @@ module WildlandDevTools
|
|
84
84
|
File.delete(scratch_file_name)
|
85
85
|
end
|
86
86
|
|
87
|
+
def import_staging_database(verbose = false)
|
88
|
+
puts 'Determining heroku app names.' if verbose
|
89
|
+
staging_app_name = get_app_name('staging', verbose)
|
90
|
+
scratch_file_name = 'latest.dump'
|
91
|
+
database_name = Rails.configuration.database_configuration['development']['database']
|
92
|
+
download_database(staging_app_name, scratch_file_name, verbose)
|
93
|
+
import_database(database_name, scratch_file_name, verbose)
|
94
|
+
File.delete(scratch_file_name)
|
95
|
+
end
|
96
|
+
|
87
97
|
def copy_production_data_to_staging(verbose = false)
|
88
98
|
puts 'Determining heroku app names.' if verbose
|
89
99
|
staging_app_name = get_app_name('staging', verbose)
|
data/wildland_dev_tools.gemspec
CHANGED
@@ -19,10 +19,12 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
20
|
spec.require_paths = ["lib"]
|
21
21
|
spec.add_dependency 'rails', ['>= 4.1', '< 5']
|
22
|
-
spec.add_runtime_dependency 'rubocop', '
|
23
|
-
spec.add_runtime_dependency 'git', '>= 1.3.0'
|
22
|
+
spec.add_runtime_dependency 'rubocop', '~> 0.52'
|
23
|
+
spec.add_runtime_dependency 'git', '~> 1.3', '>= 1.3.0'
|
24
|
+
spec.add_runtime_dependency 'table_print', '~> 1.5', '>= 1.5.6'
|
25
|
+
spec.add_runtime_dependency 'brakeman', '~> 4.1'
|
24
26
|
|
25
27
|
spec.add_development_dependency "bundler", "~> 1.10"
|
26
28
|
spec.add_development_dependency "rake", "~> 10.0"
|
27
|
-
spec.add_development_dependency
|
29
|
+
spec.add_development_dependency 'rspec', '~> 0'
|
28
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wildland_dev_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe Weakley
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -34,20 +34,23 @@ dependencies:
|
|
34
34
|
name: rubocop
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '0.
|
39
|
+
version: '0.52'
|
40
40
|
type: :runtime
|
41
41
|
prerelease: false
|
42
42
|
version_requirements: !ruby/object:Gem::Requirement
|
43
43
|
requirements:
|
44
|
-
- - "
|
44
|
+
- - "~>"
|
45
45
|
- !ruby/object:Gem::Version
|
46
|
-
version: '0.
|
46
|
+
version: '0.52'
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: git
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
+
- - "~>"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '1.3'
|
51
54
|
- - ">="
|
52
55
|
- !ruby/object:Gem::Version
|
53
56
|
version: 1.3.0
|
@@ -55,9 +58,46 @@ dependencies:
|
|
55
58
|
prerelease: false
|
56
59
|
version_requirements: !ruby/object:Gem::Requirement
|
57
60
|
requirements:
|
61
|
+
- - "~>"
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '1.3'
|
58
64
|
- - ">="
|
59
65
|
- !ruby/object:Gem::Version
|
60
66
|
version: 1.3.0
|
67
|
+
- !ruby/object:Gem::Dependency
|
68
|
+
name: table_print
|
69
|
+
requirement: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - "~>"
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '1.5'
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.5.6
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - "~>"
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '1.5'
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 1.5.6
|
87
|
+
- !ruby/object:Gem::Dependency
|
88
|
+
name: brakeman
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - "~>"
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '4.1'
|
94
|
+
type: :runtime
|
95
|
+
prerelease: false
|
96
|
+
version_requirements: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - "~>"
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '4.1'
|
61
101
|
- !ruby/object:Gem::Dependency
|
62
102
|
name: bundler
|
63
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -90,14 +130,14 @@ dependencies:
|
|
90
130
|
name: rspec
|
91
131
|
requirement: !ruby/object:Gem::Requirement
|
92
132
|
requirements:
|
93
|
-
- - "
|
133
|
+
- - "~>"
|
94
134
|
- !ruby/object:Gem::Version
|
95
135
|
version: '0'
|
96
136
|
type: :development
|
97
137
|
prerelease: false
|
98
138
|
version_requirements: !ruby/object:Gem::Requirement
|
99
139
|
requirements:
|
100
|
-
- - "
|
140
|
+
- - "~>"
|
101
141
|
- !ruby/object:Gem::Version
|
102
142
|
version: '0'
|
103
143
|
description: Wildland Dev Tools
|