以前、こんなのを書いた。
Travis CI で openjdk6 で CI を動かす
ここでは .travis.yml
の addons
に書くワークアラウンドで順調に動いていたのだが、
ここ最近、以下のようなログが出るようになっていた。
https://travis-ci.org/roundrop/facebook4j/builds/415550133
$ jdk_switcher use openjdk6
Switching to OpenJDK6 (java-1.6.0-openjdk-amd64), JAVA_HOME will be set to /usr/lib/jvm/java-6-openjdk-amd64
update-java-alternatives: directory does not exist: /usr/lib/jvm/java-1.6.0-openjdk-amd64
:
$ java -Xmx32m -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
$ javac -J-Xmx32m -version
javac 1.8.0_151
これについていろいろと調べているとこのような Issue があり、
openjdk6 on trusty no longer works · Issue #9713 · travis-ci/travis-ci
てっきりもう .travis.yml
の addons
に書くワークアラウンドは効かなくなってしまったと思い、
で、この Issue からのリンクで、
shyiko/jabba: (cross-platform) Java Version Manager
という jdk のバージョンマネージャーを使っている例 ( Azul Zulu OpenJDK 6 using Jabba by eed3si9n · Pull Request #56 · sbt/launcher ) を見かけたので真似させてもらった次第。
(ただ、後の調査で、 .travis.yml
の addons
に書くワークアラウンドは未だ健在で、
Travis のログで java や javac の version が 1.8 とか出るが実際には 1.6 で動いていることは確認したので、jabba に移行する必要はなかった。が、まあよい。)
jabba で openjdk6 を使う
君達の JDK は全て jabba がいただいた | eed3si9n を参考に
.travis.yml
を以下のような感じにすればokだった。
facebook4j/.travis.yml at develop · roundrop/facebook4j
language: java
env:
global:
- TRAVIS_JDK=zulu@1.6.103
- JABBA_HOME=/home/travis/.jabba
before_install:
- curl -sL https://github.com/shyiko/jabba/raw/master/install.sh | bash && . ~/.jabba/jabba.sh
install:
- $JABBA_HOME/bin/jabba install $TRAVIS_JDK && export JAVA_HOME="$JABBA_HOME/jdk/$TRAVIS_JDK" && export PATH="$JAVA_HOME/bin:$PATH" && java -Xmx32m -version
before_script:
- unset _JAVA_OPTIONS
- echo "debug=false" >> facebook4j-core/src/test/resources/test.properties && echo "oauth.appId=1" >> facebook4j-core/src/test/resources/test.properties && echo "oauth.appSecret=1" >> facebook4j-core/src/test/resources/test.properties && echo "oauth.accessToken=access_token" >> facebook4j-core/src/test/resources/test.properties
after_success:
- ./mvnw -pl facebook4j-core clean cobertura:cobertura org.eluder.coveralls:coveralls-maven-plugin:cobertura
cache:
directories:
- $HOME/.m2
- $HOME/.jabba/jdk
openjdk は jabba/index.json at 0.10.1 · shyiko/jabba を選択。
Travis CI のログ。
https://travis-ci.org/roundrop/facebook4j/builds/416639928
install フェーズのログが、
$ $JABBA_HOME/bin/jabba install $TRAVIS_JDK && export JAVA_HOME="$JABBA_HOME/jdk/$TRAVIS_JDK" && export PATH="$JAVA_HOME/bin:$PATH" && java -Xmx32m -version
Downloading zulu@1.6.103 (http://cdn.azul.com/zulu/bin/zulu6.19.0.1-jdk6.0.103-linux_x64.tar.gz)
64297024/64297024
Extracting /tmp/jabba-d-040253746 to /home/travis/.jabba/jdk/zulu@1.6.103
zulu@1.6 -> /home/travis/.jabba/jdk/zulu@1.6.103
openjdk version "1.6.0-103"
OpenJDK Runtime Environment (Zulu 6.19.0.1-linux64) (build 1.6.0-103-b103)
OpenJDK 64-Bit Server VM (Zulu 6.19.0.1-linux64) (build 23.77-b103, mixed mode)
のような感じになった。