2017-02-27 16:15:15 +01:00
|
|
|
#!/usr/bin/env bash
|
2015-06-16 20:17:07 +02:00
|
|
|
set -ev
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
SCALA_VERSION="${SCALA_VERSION:-${TRAVIS_SCALA_VERSION:-2.12.1}}"
|
|
|
|
|
PULL_REQUEST="${PULL_REQUEST:-${TRAVIS_PULL_REQUEST:-false}}"
|
|
|
|
|
BRANCH="${BRANCH:-${TRAVIS_BRANCH:-$(git rev-parse --abbrev-ref HEAD)}}"
|
|
|
|
|
PUBLISH="${PUBLISH:-0}"
|
|
|
|
|
SCALA_JS="${SCALA_JS:-0}"
|
2015-06-16 20:17:07 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
JARJAR_VERSION="${JARJAR_VERSION:-1.0.1-coursier-SNAPSHOT}"
|
2015-06-16 20:17:07 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
setupCoursierBinDir() {
|
|
|
|
|
mkdir -p bin
|
|
|
|
|
cp coursier bin/
|
|
|
|
|
export PATH="$(pwd)/bin:$PATH"
|
2015-06-16 20:17:07 +02:00
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
downloadInstallSbtExtras() {
|
|
|
|
|
curl -L -o bin/sbt https://github.com/paulp/sbt-extras/raw/9ade5fa54914ca8aded44105bf4b9a60966f3ccd/sbt
|
|
|
|
|
chmod +x bin/sbt
|
2015-06-16 20:17:07 +02:00
|
|
|
}
|
|
|
|
|
|
2017-03-23 15:19:07 +01:00
|
|
|
launchTestRepo() {
|
|
|
|
|
./scripts/launch-test-repo.sh "$@"
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
integrationTestsRequirements() {
|
|
|
|
|
# Required for ~/.ivy2/local repo tests
|
2017-04-26 14:11:38 +02:00
|
|
|
sbt ++2.11.11 coreJVM/publishLocal http-server/publishLocal
|
2017-02-27 16:15:15 +01:00
|
|
|
|
|
|
|
|
# Required for HTTP authentication tests
|
2017-03-23 15:19:07 +01:00
|
|
|
launchTestRepo --port 8080 --list-pages
|
|
|
|
|
|
|
|
|
|
# Required for missing directory listing tests (no --list-pages)
|
|
|
|
|
launchTestRepo --port 8081
|
2015-06-16 20:17:07 +02:00
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
setupCustomJarjar() {
|
|
|
|
|
if [ ! -d "$HOME/.m2/repository/org/anarres/jarjar/jarjar-core/$JARJAR_VERSION" ]; then
|
|
|
|
|
git clone https://github.com/alexarchambault/jarjar.git
|
|
|
|
|
cd jarjar
|
|
|
|
|
if ! grep -q "^version=$JARJAR_VERSION\$" gradle.properties; then
|
|
|
|
|
echo "Expected jarjar version not found" 1>&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
git checkout 249c8dbb970f8
|
|
|
|
|
./gradlew :jarjar-core:install
|
|
|
|
|
cd ..
|
|
|
|
|
rm -rf jarjar
|
|
|
|
|
fi
|
2015-06-18 01:00:03 +02:00
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
isScalaJs() {
|
|
|
|
|
[ "$SCALA_JS" = 1 ]
|
|
|
|
|
}
|
2016-05-06 13:53:55 +02:00
|
|
|
|
2017-05-04 15:25:49 +02:00
|
|
|
sbtCoursier() {
|
|
|
|
|
[ "$SBT_COURSIER" = 1 ]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sbtShading() {
|
|
|
|
|
[ "$SBT_SHADING" = 1 ]
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
is210() {
|
|
|
|
|
echo "$SCALA_VERSION" | grep -q "^2\.10"
|
|
|
|
|
}
|
2015-07-07 20:43:18 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
is211() {
|
|
|
|
|
echo "$SCALA_VERSION" | grep -q "^2\.11"
|
|
|
|
|
}
|
|
|
|
|
|
2017-05-02 22:06:19 +02:00
|
|
|
is212() {
|
|
|
|
|
echo "$SCALA_VERSION" | grep -q "^2\.12"
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
runSbtCoursierTests() {
|
2017-05-11 23:54:52 +02:00
|
|
|
sbt ++$SCALA_VERSION coreJVM/publishLocal cache/publishLocal extra/publishLocal "sbt-coursier/scripted sbt-coursier/*"
|
2017-05-03 19:09:59 +02:00
|
|
|
if [ "$SCALA_VERSION" = "2.10" ]; then
|
|
|
|
|
sbt ++$SCALA_VERSION "sbt-coursier/scripted sbt-coursier-0.13/*"
|
|
|
|
|
fi
|
2017-02-27 16:15:15 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
runSbtShadingTests() {
|
2017-05-11 23:54:52 +02:00
|
|
|
sbt ++$SCALA_VERSION coreJVM/publishLocal cache/publishLocal extra/publishLocal sbt-coursier/publishLocal "sbt-shading/scripted sbt-shading/*"
|
2017-05-03 19:09:59 +02:00
|
|
|
if [ "$SCALA_VERSION" = "2.10" ]; then
|
|
|
|
|
sbt ++$SCALA_VERSION "sbt-shading/scripted sbt-shading-0.13/*"
|
|
|
|
|
fi
|
2017-02-27 16:15:15 +01:00
|
|
|
}
|
2015-06-17 19:36:53 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
jsCompile() {
|
|
|
|
|
sbt ++$SCALA_VERSION js/compile js/test:compile coreJS/fastOptJS fetch-js/fastOptJS testsJS/test:fastOptJS js/test:fastOptJS
|
|
|
|
|
}
|
2016-04-06 22:38:10 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
jvmCompile() {
|
|
|
|
|
sbt ++$SCALA_VERSION jvm/compile jvm/test:compile
|
|
|
|
|
}
|
2017-01-30 22:57:24 +01:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
runJsTests() {
|
|
|
|
|
sbt ++$SCALA_VERSION js/test
|
|
|
|
|
}
|
2017-01-30 22:57:24 +01:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
runJvmTests() {
|
|
|
|
|
sbt ++$SCALA_VERSION jvm/test jvm/it:test
|
|
|
|
|
}
|
2017-01-30 22:57:24 +01:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
validateReadme() {
|
|
|
|
|
sbt ++${SCALA_VERSION} tut
|
|
|
|
|
}
|
2017-01-30 22:57:24 +01:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
checkBinaryCompatibility() {
|
|
|
|
|
sbt ++${SCALA_VERSION} coreJVM/mimaReportBinaryIssues cache/mimaReportBinaryIssues
|
|
|
|
|
}
|
2017-01-30 22:57:24 +01:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
testLauncherJava6() {
|
|
|
|
|
sbt ++${SCALA_VERSION} cli/pack
|
|
|
|
|
docker run -it --rm \
|
|
|
|
|
-v $(pwd)/cli/target/pack:/opt/coursier \
|
|
|
|
|
-e CI=true \
|
|
|
|
|
openjdk:6-jre \
|
|
|
|
|
/opt/coursier/bin/coursier fetch org.scalacheck::scalacheck:1.13.4
|
|
|
|
|
|
|
|
|
|
docker run -it --rm \
|
|
|
|
|
-v $(pwd)/cli/target/pack:/opt/coursier \
|
|
|
|
|
-e CI=true \
|
|
|
|
|
openjdk:6-jre \
|
|
|
|
|
/opt/coursier/bin/coursier launch --help
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
testSbtCoursierJava6() {
|
2017-05-11 23:54:52 +02:00
|
|
|
sbt ++${SCALA_VERSION} coreJVM/publishLocal cache/publishLocal extra/publishLocal sbt-coursier/publishLocal
|
2017-04-21 14:06:32 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
git clone https://github.com/alexarchambault/scalacheck-shapeless.git
|
|
|
|
|
cd scalacheck-shapeless
|
|
|
|
|
cd project
|
|
|
|
|
clean_plugin_sbt
|
|
|
|
|
cd project
|
|
|
|
|
clean_plugin_sbt
|
|
|
|
|
cd ../..
|
|
|
|
|
docker run -it --rm \
|
|
|
|
|
-v $HOME/.ivy2/local:/root/.ivy2/local \
|
|
|
|
|
-v $(pwd):/root/project \
|
|
|
|
|
-v $(pwd)/../bin:/root/bin \
|
|
|
|
|
-e CI=true \
|
|
|
|
|
openjdk:6-jre \
|
|
|
|
|
/bin/bash -c "cd /root/project && /root/bin/sbt update"
|
|
|
|
|
cd ..
|
2017-04-21 14:06:32 +02:00
|
|
|
|
|
|
|
|
# ensuring resolution error doesn't throw NoSuchMethodError
|
|
|
|
|
mkdir -p foo/project
|
|
|
|
|
cd foo
|
|
|
|
|
echo 'libraryDependencies += "foo" % "bar" % "1.0"' >> build.sbt
|
|
|
|
|
echo 'addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-SNAPSHOT")' >> project/plugins.sbt
|
|
|
|
|
echo 'sbt.version=0.13.15' >> project/build.properties
|
|
|
|
|
docker run -it --rm \
|
|
|
|
|
-v $HOME/.ivy2/local:/root/.ivy2/local \
|
|
|
|
|
-v $(pwd):/root/project \
|
|
|
|
|
-v $(pwd)/../bin:/root/bin \
|
|
|
|
|
-e CI=true \
|
|
|
|
|
openjdk:6-jre \
|
|
|
|
|
/bin/bash -c "cd /root/project && /root/bin/sbt update || true" | tee -a output
|
|
|
|
|
grep "coursier.ResolutionException: Encountered 1 error" output
|
|
|
|
|
echo "Ok, found ResolutionException in output"
|
|
|
|
|
cd ..
|
2017-02-27 16:15:15 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
clean_plugin_sbt() {
|
|
|
|
|
mv plugins.sbt plugins.sbt0
|
|
|
|
|
grep -v coursier plugins.sbt0 > plugins.sbt || true
|
|
|
|
|
echo '
|
|
|
|
|
addSbtPlugin("io.get-coursier" % "sbt-coursier" % "1.0.0-SNAPSHOT")
|
|
|
|
|
' >> plugins.sbt
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
publish() {
|
|
|
|
|
sbt ++${SCALA_VERSION} publish
|
|
|
|
|
}
|
|
|
|
|
|
2017-05-05 18:04:20 +02:00
|
|
|
testBootstrap() {
|
|
|
|
|
if is211; then
|
|
|
|
|
sbt ++${SCALA_VERSION} echo/publishLocal cli/pack
|
|
|
|
|
cli/target/pack/bin/coursier bootstrap -o cs-echo io.get-coursier:echo_2.11:1.0.0-SNAPSHOT
|
|
|
|
|
if [ "$(./cs-echo foo)" != foo ]; then
|
|
|
|
|
echo "Error: unexpected output from bootstrapped echo command." 1>&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
|
|
|
|
|
# TODO Add coverage once https://github.com/scoverage/sbt-scoverage/issues/111 is fixed
|
|
|
|
|
|
2017-02-28 14:42:28 +01:00
|
|
|
setupCustomJarjar
|
|
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
setupCoursierBinDir
|
|
|
|
|
downloadInstallSbtExtras
|
|
|
|
|
|
|
|
|
|
if isScalaJs; then
|
|
|
|
|
jsCompile
|
|
|
|
|
runJsTests
|
|
|
|
|
else
|
|
|
|
|
integrationTestsRequirements
|
|
|
|
|
jvmCompile
|
|
|
|
|
|
2017-05-04 15:25:49 +02:00
|
|
|
if sbtCoursier; then
|
|
|
|
|
if is210 || is212; then
|
|
|
|
|
runSbtCoursierTests
|
|
|
|
|
fi
|
2016-04-06 22:38:10 +02:00
|
|
|
|
2017-05-04 15:25:49 +02:00
|
|
|
if is210; then
|
|
|
|
|
testSbtCoursierJava6
|
|
|
|
|
fi
|
|
|
|
|
elif sbtShading; then
|
|
|
|
|
if is210 || is212; then
|
|
|
|
|
runSbtShadingTests
|
|
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
runJvmTests
|
2016-04-06 22:38:10 +02:00
|
|
|
|
2017-05-05 18:04:20 +02:00
|
|
|
testBootstrap
|
|
|
|
|
|
2017-05-04 15:25:49 +02:00
|
|
|
validateReadme
|
|
|
|
|
checkBinaryCompatibility
|
2016-11-27 13:44:14 +01:00
|
|
|
|
2017-05-04 15:25:49 +02:00
|
|
|
if is211; then
|
|
|
|
|
testLauncherJava6
|
|
|
|
|
fi
|
2017-02-27 16:15:15 +01:00
|
|
|
fi
|
2016-11-27 13:44:14 +01:00
|
|
|
|
2017-05-04 15:25:49 +02:00
|
|
|
# Not using a jdk6 matrix entry with Travis as some sources of coursier require Java 7 to compile
|
|
|
|
|
# (even though it won't try to call Java 7 specific methods if it detects it runs under Java 6).
|
|
|
|
|
# The tests here check that coursier is nonetheless fine when run under Java 6.
|
2015-06-16 20:17:07 +02:00
|
|
|
fi
|
2015-06-17 19:36:53 +02:00
|
|
|
|
2017-02-27 16:15:15 +01:00
|
|
|
|
|
|
|
|
if [ "$PUBLISH" = 1 -a "$PULL_REQUEST" = false -a "$BRANCH" = master ]; then
|
|
|
|
|
publish
|
|
|
|
|
|
|
|
|
|
if is211 && isScalaJs; then
|
|
|
|
|
#"$(dirname "$0")/push-gh-pages.sh" "$SCALA_VERSION"
|
|
|
|
|
:
|
2015-06-18 01:00:03 +02:00
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|