Commit c75b1413 authored by zeke's avatar zeke

improve build output; all tests passing again

parent 1200fbb9
...@@ -10,7 +10,7 @@ status() { ...@@ -10,7 +10,7 @@ status() {
protip() { protip() {
echo echo
echo "PRO TIP: $*" | indent echo "PRO TIP: $*" | indent
echo "See https://devcenter.heroku.com/articles/nodejs-support" echo "See https://devcenter.heroku.com/articles/nodejs-support" | indent
echo echo
} }
......
...@@ -20,28 +20,30 @@ trap cat_npm_debug_log ERR ...@@ -20,28 +20,30 @@ trap cat_npm_debug_log ERR
# Look in package.json's engines.node field for a semver range # Look in package.json's engines.node field for a semver range
semver_range=$(cat $build_dir/package.json | $bp_dir/vendor/jq -r .engines.node) semver_range=$(cat $build_dir/package.json | $bp_dir/vendor/jq -r .engines.node)
# Resolve node version using semver.io
semver_url=http://semver.io/node/$semver_range
node_version=$(curl --silent $semver_url)
# Recommend using semver ranges in a safe manner # Recommend using semver ranges in a safe manner
if [ "$semver_range" == "null" ]; then if [ "$semver_range" == "null" ]; then
protip "Specify a node version in package.json" protip "Specify a node version in package.json"
semver_range="" semver_range=""
elif [ "$semver_range" == "*" ]; then elif [ "$semver_range" == "*" ]; then
protip "Don't use semver ranges like *" protip "Avoid using semver ranges like '*' in engines.node"
elif [ ${semver_range:0:1} == ">" ]; then elif [ ${semver_range:0:1} == ">" ]; then
protip "Don't use semver ranges starting with >" protip "Avoid using semver ranges starting with '>' in engines.node"
fi fi
# Resolve node version using semver.io # Output info about requested range and resolved node version
semver_url=http://semver.io/node/$semver_range
node_version=$(curl --silent $semver_url)
if [ "$semver_range" == "" ]; then if [ "$semver_range" == "" ]; then
status "Defaulting to latest stable node: $node_version" status "Defaulting to latest stable node: $node_version"
else else
status "Resolved node version for $semver_range is $node_version" status "Requested node range: $semver_range"
status "Resolved node version: $node_version"
fi fi
# Download node from Heroku's S3 mirror of nodejs.org/dist # Download node from Heroku's S3 mirror of nodejs.org/dist
status "Downloading and installing node v$node_version" status "Downloading and installing node"
node_url="http://s3pository.heroku.com/node/v$node_version/node-v$node_version-linux-x64.tar.gz" node_url="http://s3pository.heroku.com/node/v$node_version/node-v$node_version-linux-x64.tar.gz"
curl $node_url -s -o - | tar xzf - -C $build_dir curl $node_url -s -o - | tar xzf - -C $build_dir
......
...@@ -21,15 +21,17 @@ testNoVersion() { ...@@ -21,15 +21,17 @@ testNoVersion() {
testDangerousRangeStar() { testDangerousRangeStar() {
compile "dangerous-range-star" compile "dangerous-range-star"
assertCaptured "PRO TIP: Don't use semver ranges like *" assertCaptured "PRO TIP: Avoid using semver ranges like '*'"
assertCaptured "Requested node range: *"
assertCaptured "Resolved node version: 0.10"
assertCapturedSuccess assertCapturedSuccess
} }
testDangerousRangeGreaterThan() { testDangerousRangeGreaterThan() {
compile "dangerous-range-greater-than" compile "dangerous-range-greater-than"
assertCaptured "PRO TIP: Don't use semver ranges starting with >" assertCaptured "PRO TIP: Avoid using semver ranges starting with '>'"
assertCaptured "Resolved node version for >" assertCaptured "Requested node range: >"
assertCaptured "Resolved node version: 0.10."
assertCapturedSuccess assertCapturedSuccess
} }
...@@ -42,7 +44,8 @@ testStableVersion() { ...@@ -42,7 +44,8 @@ testStableVersion() {
testUnstableVersion() { testUnstableVersion() {
compile "unstable-version" compile "unstable-version"
assertCaptured "Resolved node version for >0.11.0 is 0.11" assertCaptured "Requested node range: >0.11.0"
assertCaptured "Resolved node version: 0.11."
assertCapturedSuccess assertCapturedSuccess
} }
...@@ -51,6 +54,11 @@ testUnstableVersion() { ...@@ -51,6 +54,11 @@ testUnstableVersion() {
# assertCapturedError 1 "not found among available versions" # assertCapturedError 1 "not found among available versions"
# } # }
# testInvalidVersion() {
# compile "invalid-dependency"
# assertCapturedError 1 "not in the npm registry"
# }
testProfileCreated() { testProfileCreated() {
compile "stable-node" compile "stable-node"
assertCaptured "Building runtime environment" assertCaptured "Building runtime environment"
......
A fake README, to keep npm from polluting stderr.
\ No newline at end of file
{
"name": "node-buildpack-test-app",
"version": "0.0.1",
"description": "node buildpack integration test app",
"repository" : {
"type" : "git",
"url" : "http://github.com/example/example.git"
},
"engines": {
"node": "~0.10.20"
},
"dependencies": {
"some-crazy-dep-that-doesnt-exist": "*"
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment