heroku_hatchet 4.0.5 → 4.0.6
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/.travis.yml +3 -8
- data/CHANGELOG.md +4 -0
- data/README.md +23 -7
- data/bin/hatchet +23 -6
- data/etc/ci_setup.rb +28 -0
- data/etc/setup_heroku.sh +6 -0
- data/lib/hatchet/tasks.rb +3 -23
- data/lib/hatchet/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d083ce00b13be495fe3c6e2d19d66a75d4e390aa960d668edc2355f333653bdf
|
4
|
+
data.tar.gz: 2c3033b15be7d3a375ff4f8565f19f7b74da9269bd3f0d79a9b94d58db305810
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8740ec9d580dbe263b393dea890c243dce35b062f08ade6a20d232ebc3b212cdd53f44f7d83d1c0102d693564fcbd840a4b5bc736fcb61628354a1a0ad7b6d4d
|
7
|
+
data.tar.gz: 11a08221b229977aebdb8be2f403ee4b93b45ab48c66ba0a6a8db5b06ed90379cdfdfa139724a948dfba75101f53357a094ff0d453e8105a7b7a56dd5090f225
|
data/.travis.yml
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
language: ruby
|
2
2
|
rvm:
|
3
3
|
- 2.3.1
|
4
|
-
before_script:
|
4
|
+
before_script:
|
5
|
+
- bundle exec hatchet ci:setup
|
5
6
|
script: bundle exec parallel_test test/hatchet -n 9
|
6
7
|
after_script: bundle exec rake hatchet:teardown_travis
|
7
8
|
env:
|
@@ -11,11 +12,5 @@ env:
|
|
11
12
|
- HATCHET_APP_LIMIT=80
|
12
13
|
- secure: KvuEChRTZYrWd1Q4PKt3YM5FkfuCAOtsKgjC4HDGjCYVNee3793XGwAr0e5LiQqrvHDmbJS7ZPelV3ptor2QJTdmZjPhu/tZKPMLQg7wm8vTcrJflkJDqJl6ECxd40zbUgmo+wSPSvx+K3ZGKqLF4D43vvFJaqBUoAVOGdt66c8=
|
13
14
|
- secure: XuJ4XUraWzNlfY9a+6Mh9lVlLuRY988YAaA8LKQOe2KAT5MRqcZzqlKOwDeTWK0tas68bzK7T8RT/L+6/nck0u5VrPHMhkc8QDBSqcle8kFcBxf/64EnCzB40lZoxvcdQ3wm8E41DRwsI7hAHLdVVNXC8f1/wQOAm77nOEvPdvM=
|
14
|
-
sudo:
|
15
|
+
sudo: true
|
15
16
|
dist: trusty
|
16
|
-
addons:
|
17
|
-
apt:
|
18
|
-
sources:
|
19
|
-
- heroku
|
20
|
-
packages:
|
21
|
-
- heroku-toolbelt
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -332,15 +332,31 @@ I recommend signing up for a new heroku account for running your tests on travis
|
|
332
332
|
$ travis encrypt HEROKU_API_KEY=<token> --add
|
333
333
|
```
|
334
334
|
|
335
|
-
You'll also need
|
335
|
+
You'll also need to download the Heroku CLI. Add the executable `etc/ci_setup.sh` to your project, with contents:
|
336
336
|
|
337
337
|
```
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
338
|
+
#!/usr/bin/env bash
|
339
|
+
|
340
|
+
sudo apt-get -qq update
|
341
|
+
sudo apt-get install software-properties-common
|
342
|
+
curl --fail --retry 3 --retry-delay 1 --connect-timeout 3 --max-time 30 https://cli-assets.heroku.com/install-ubuntu.sh | sh
|
343
|
+
```
|
344
|
+
|
345
|
+
Be sure to change the file permissions with `chmod u+x etc/ci_setup.sh` so that the file is executable.
|
346
|
+
|
347
|
+
To run this and download the Heroku cli, you will need to add this step before your install or script depending on your Travis setup process.
|
348
|
+
|
349
|
+
```
|
350
|
+
before_script:
|
351
|
+
- bash etc/ci_setup.sh
|
352
|
+
```
|
353
|
+
|
354
|
+
If your Travis tests are containerized, you may need sudo to complete this successfully. In that case, you'll need to add the following:
|
355
|
+
|
356
|
+
```
|
357
|
+
sudo: required
|
358
|
+
before_install:
|
359
|
+
- sudo bash etc/ci_setup.sh
|
344
360
|
```
|
345
361
|
|
346
362
|
## Extra App Commands
|
data/bin/hatchet
CHANGED
@@ -17,6 +17,24 @@ require 'date'
|
|
17
17
|
require 'yaml'
|
18
18
|
|
19
19
|
class HatchetCLI < Thor
|
20
|
+
desc "ci:install_heroku", "installs the `heroku` cli"
|
21
|
+
define_method("ci:install_heroku") do
|
22
|
+
if `which heroku` && $?.success?
|
23
|
+
puts "The `heroku` command is already installed"
|
24
|
+
return
|
25
|
+
else
|
26
|
+
puts "installing `heroku` command"
|
27
|
+
end
|
28
|
+
script = File.expand_path File.join(__dir__, "../etc/setup_heroku.sh")
|
29
|
+
cmd(script)
|
30
|
+
end
|
31
|
+
|
32
|
+
desc "ci:setup", "sets up project to run on a linux CI environment"
|
33
|
+
define_method("ci:setup") do
|
34
|
+
script = File.expand_path File.join(__dir__, "../etc/ci_setup.rb")
|
35
|
+
cmd(script)
|
36
|
+
end
|
37
|
+
|
20
38
|
desc "install", "installs repos defined in 'hatchet.json'"
|
21
39
|
def install
|
22
40
|
warn_dot_ignore!
|
@@ -46,12 +64,6 @@ class HatchetCLI < Thor
|
|
46
64
|
self.lock if missing_commit
|
47
65
|
end
|
48
66
|
|
49
|
-
def load_lockfile
|
50
|
-
return YAML.safe_load(File.read('hatchet.lock')).to_h
|
51
|
-
rescue Errno::ENOENT => e
|
52
|
-
raise "No such file found `hatchet.lock` please run `$ bundle exec hatchet lock`"
|
53
|
-
end
|
54
|
-
|
55
67
|
desc "locks to specific git commits", "updates hatchet.lock"
|
56
68
|
def lock
|
57
69
|
lock_hash = {}
|
@@ -98,6 +110,11 @@ class HatchetCLI < Thor
|
|
98
110
|
end
|
99
111
|
|
100
112
|
private
|
113
|
+
def load_lockfile
|
114
|
+
return YAML.safe_load(File.read('hatchet.lock')).to_h
|
115
|
+
rescue Errno::ENOENT => e
|
116
|
+
raise "No such file found `hatchet.lock` please run `$ bundle exec hatchet lock`"
|
117
|
+
end
|
101
118
|
|
102
119
|
def bad_repo?(url)
|
103
120
|
`git ls-remote --exit-code -h "#{url}"`
|
data/etc/ci_setup.rb
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'bundler'
|
3
|
+
puts "== Setting Up CI =="
|
4
|
+
|
5
|
+
netrc_file = "#{ENV['HOME']}/.netrc"
|
6
|
+
unless File.exists?(netrc_file)
|
7
|
+
File.open(netrc_file, 'w') do |file|
|
8
|
+
file.write <<-EOF
|
9
|
+
machine git.heroku.com
|
10
|
+
login #{ENV.fetch('HEROKU_API_USER')}
|
11
|
+
password #{ENV.fetch('HEROKU_API_KEY')}
|
12
|
+
EOF
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
[
|
17
|
+
"bundle exec hatchet ci:install_heroku",
|
18
|
+
"bundle exec hatchet install",
|
19
|
+
"if [ `git config --get user.email` ]; then echo 'already set'; else `git config --global user.email '#{ENV.fetch('HEROKU_API_USER')}'`; fi",
|
20
|
+
"if [ `git config --get user.name` ]; then echo 'already set'; else `git config --global user.name 'BuildpackTester'` ; fi",
|
21
|
+
].each do |command|
|
22
|
+
puts "== Running: #{command}"
|
23
|
+
Bundler.with_clean_env do
|
24
|
+
result = `#{command}`
|
25
|
+
raise "Command failed: #{command.inspect}\nResult: #{result}" unless $?.success?
|
26
|
+
end
|
27
|
+
end
|
28
|
+
puts "== Done =="
|
data/etc/setup_heroku.sh
ADDED
data/lib/hatchet/tasks.rb
CHANGED
@@ -1,28 +1,8 @@
|
|
1
1
|
namespace :hatchet do
|
2
2
|
task :setup_ci do
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
File.open(netrc_file, 'w') do |file|
|
7
|
-
file.write <<-EOF
|
8
|
-
machine git.heroku.com
|
9
|
-
login #{ENV.fetch('HEROKU_API_USER')}
|
10
|
-
password #{ENV.fetch('HEROKU_API_KEY')}
|
11
|
-
EOF
|
12
|
-
end
|
13
|
-
end
|
14
|
-
[
|
15
|
-
"bundle exec hatchet install",
|
16
|
-
"if [ `git config --get user.email` ]; then echo 'already set'; else `git config --global user.email '#{ENV.fetch('HEROKU_API_USER')}'`; fi",
|
17
|
-
"if [ `git config --get user.name` ]; then echo 'already set'; else `git config --global user.name 'BuildpackTester'` ; fi",
|
18
|
-
].each do |command|
|
19
|
-
puts "== Running: #{command}"
|
20
|
-
Bundler.with_clean_env do
|
21
|
-
result = `#{command}`
|
22
|
-
raise "Command failed: #{command.inspect}\nResult: #{result}" unless $?.success?
|
23
|
-
end
|
24
|
-
end
|
25
|
-
puts "== Done =="
|
3
|
+
script = File.expand_path = File.join(__dir__, "../../etc/ci_setup.rb")
|
4
|
+
out = `#{script}`
|
5
|
+
raise "Command #{script.inspect} failed\n#{out}"
|
26
6
|
end
|
27
7
|
|
28
8
|
task :setup_travis do
|
data/lib/hatchet/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroku_hatchet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Schneeman
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: platform-api
|
@@ -194,6 +194,8 @@ files:
|
|
194
194
|
- README.md
|
195
195
|
- Rakefile
|
196
196
|
- bin/hatchet
|
197
|
+
- etc/ci_setup.rb
|
198
|
+
- etc/setup_heroku.sh
|
197
199
|
- hatchet.gemspec
|
198
200
|
- hatchet.json
|
199
201
|
- hatchet.lock
|