slugbuilder 1.0.0 → 1.1.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 +10 -0
- data/CODE_OF_CONDUCT.md +1 -1
- data/README.md +3 -2
- data/lib/slugbuilder/builder.rb +8 -7
- data/lib/slugbuilder/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8390ed6955989466405c4b13f75dda4c613e22ee
|
4
|
+
data.tar.gz: 3ffbc59def65e419090be1033c442100597a4fbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca3c527f6d8dd812693a090f5475934821d31f20c88e58ca8f81df0ed81344b6361d6e0d54e33cdcf9c89092303b036cfb9475ca525195bced1dbc55303f64ca
|
7
|
+
data.tar.gz: acfa79622b0d7b7fcbcd4036105fda5991baa4e4bb43c06d06e78fd9c56e96f79e3d71b468565638bba494e13e5f9566a219001f6d86b4a970bb309ed9a48916
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 1.1.0 (2017-1-27)
|
4
|
+
|
5
|
+
Fixed:
|
6
|
+
|
7
|
+
- `build` with `clear_cache: true` now works correctly [e535c96](../../commit/e535c96)
|
8
|
+
|
9
|
+
Added:
|
10
|
+
|
11
|
+
- `build` optionally takes a `buildpacks` keyword argument that specifies an array of buildpacks to use for that particular build [3871ff9](../../commit/3871ff9)
|
12
|
+
|
3
13
|
## 1.0.0 (2017-1-18)
|
4
14
|
|
5
15
|
Initial release
|
data/CODE_OF_CONDUCT.md
CHANGED
@@ -55,7 +55,7 @@ further defined and clarified by project maintainers.
|
|
55
55
|
## Enforcement
|
56
56
|
|
57
57
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
58
|
-
reported by contacting the project team
|
58
|
+
reported by contacting the project team. All
|
59
59
|
complaints will be reviewed and investigated and will result in a response that
|
60
60
|
is deemed necessary and appropriate to the circumstances. The project team is
|
61
61
|
obligated to maintain confidentiality with regard to the reporter of an incident.
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Slugbuilder is a Ruby gem to build [Heroku](https://www.heroku.com/)-like [slugs](https://devcenter.heroku.com/articles/platform-api-deploying-slugs).
|
4
4
|
|
5
|
-
It runs Heroku [buildpacks](https://devcenter.heroku.com/articles/buildpacks) on an application and builds a [slug](https://devcenter.heroku.com/articles/slug-compiler), which is essentially a `tar` file that can run on services like Heroku, [lxfontes/slugrunner-rb](https://github.com/lxfontes/slugrunner-rb), [deis/slugrunner](https://github.com/deis/slugrunner), and the like.
|
5
|
+
It runs Heroku [buildpacks](https://devcenter.heroku.com/articles/buildpacks) on an application and builds a [slug](https://devcenter.heroku.com/articles/slug-compiler), which is essentially a `tar` file that can run on services like Heroku, [panoplymedia/slugrunner](https://github.com/panoplymedia/slugrunner), [lxfontes/slugrunner-rb](https://github.com/lxfontes/slugrunner-rb), [deis/slugrunner](https://github.com/deis/slugrunner), and the like.
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -91,13 +91,14 @@ end
|
|
91
91
|
|
92
92
|
Alternatively, a Proc can be passed to `build` method's keyword argument `prebuild` to achieve the same effect.
|
93
93
|
|
94
|
-
### Builder#build(slug_name: nil, clear_cache: false, env: {}, prebuild: nil, postbuild: nil, &block)
|
94
|
+
### Builder#build(slug_name: nil, clear_cache: false, env: {}, buildpacks: Slugbuilder.config.buildpacks, prebuild: nil, postbuild: nil, &block)
|
95
95
|
|
96
96
|
`build` builds the slug and writes build information to `STDOUT`.
|
97
97
|
|
98
98
|
- `slug_name` String (optional): Override default name of slug (repo.git_ref.git_sha.tgz with the `/` in repo replaced by `.`)
|
99
99
|
- `clear_cache` Boolean (optional): destroys the cache before building when true
|
100
100
|
- `env` Hash (optional): an optional hash of environment variables
|
101
|
+
- `buildpacks` Array (optional): optionally set buildpacks to be used for that particular build. defaults to `Slugbuilder.config.buildpacks`
|
101
102
|
- `prebuild` Proc (optional): an optional Proc (or anything that conforms to the `call` API of a Proc) that will be run before the build. The Proc will receive a Hash with the structure:
|
102
103
|
- `repo` String: The git repo identifier
|
103
104
|
- `git_ref` String: The git branchname or SHA
|
data/lib/slugbuilder/builder.rb
CHANGED
@@ -23,7 +23,8 @@ module Slugbuilder
|
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
|
-
def build(clear_cache: false, env: {}, prebuild: nil, postbuild: nil, slug_name: nil)
|
26
|
+
def build(clear_cache: false, env: {}, prebuild: nil, postbuild: nil, slug_name: nil, buildpacks: Slugbuilder.config.buildpacks)
|
27
|
+
@buildpacks = buildpacks
|
27
28
|
@env = env
|
28
29
|
@slug_file = slug_name ? "#{slug_name}.tgz" : Shellwords.escape("#{@repo.gsub('/', '.')}.#{@git_ref}.#{@git_sha}.tgz")
|
29
30
|
wipe_cache if clear_cache
|
@@ -50,7 +51,7 @@ module Slugbuilder
|
|
50
51
|
end
|
51
52
|
return true
|
52
53
|
rescue => e
|
53
|
-
stitle("Failed
|
54
|
+
stitle("Failed: #{e}")
|
54
55
|
return false
|
55
56
|
end
|
56
57
|
|
@@ -59,6 +60,7 @@ module Slugbuilder
|
|
59
60
|
|
60
61
|
def wipe_cache
|
61
62
|
FileUtils.rm_rf(@cache_dir)
|
63
|
+
FileUtils.mkdir_p(File.join(@cache_dir, 'buildpacks'))
|
62
64
|
end
|
63
65
|
|
64
66
|
def build_and_release
|
@@ -142,12 +144,11 @@ module Slugbuilder
|
|
142
144
|
end
|
143
145
|
|
144
146
|
def fetch_buildpacks
|
145
|
-
buildpacks
|
146
|
-
|
147
|
-
fail 'Could not detect buildpack' if buildpacks.size.zero?
|
147
|
+
@buildpacks << Shellwords.escape(@env['BUILDPACK_URL']) if @env.key?('BUILDPACK_URL')
|
148
|
+
fail 'Could not detect buildpack' if @buildpacks.size.zero?
|
148
149
|
|
149
150
|
existing_buildpacks = Dir.entries(@buildpacks_dir)
|
150
|
-
buildpacks.each do |buildpack_url|
|
151
|
+
@buildpacks.each do |buildpack_url|
|
151
152
|
buildpack_name = get_buildpack_name(buildpack_url)
|
152
153
|
if !existing_buildpacks.include?(buildpack_name)
|
153
154
|
# download buildpack
|
@@ -164,7 +165,7 @@ module Slugbuilder
|
|
164
165
|
end
|
165
166
|
end
|
166
167
|
|
167
|
-
buildpacks
|
168
|
+
@buildpacks
|
168
169
|
end
|
169
170
|
|
170
171
|
def run_buildpacks(buildpacks)
|
data/lib/slugbuilder/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slugbuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Panoply Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|