Recently Mozilla restricted access to ftp.mozilla.org, instead you can download nightlies from archive.mozilla.org. Sadly this broke existing methods to download Firefox nightly for automated unit tests on Travis CI. I’ve written a node module, that takes care of downloading nightly versions of Firefox desktop and Android.
.travis.yml for Desktop
sudo: false language: node_js node_js: stable env: global: - DISPLAY=:99.0 - JPM_FIREFOX_BINARY=$TRAVIS_BUILD_DIR/../firefox/firefox before_install: - sh -e /etc/init.d/xvfb start - npm i -g get-firefox - get-firefox -ecb unbranded-release -t ../ before_script: - npm install -g jpm script: - jpm test
Update: I changed the export commands to setting the variables with the .travis.yml env property, because it feels cleaner.
Update 2: Switched to the Firefox from travis.
Update 3: With unsigned builds being a thing and travis not supporting them yet, I’ve switched back to using get-firefox for desktop tests too.
.travis.yml for Android
Since jpm-mobile is currently broken, this clones a fixed version and installs it. Further, timing for the Android Emulator is somewhat important, so you might have to fiddle with the order and content of the before sections.
sudo: false language: android android: components: - platform-tools - tools - android-19 - sys-img-armeabi-v7a-android-19 env: global: - DISPLAY=99.0 - JPM_FIREFOX_BINARY=fennec - JPM_ADB_PATH=/usr/local/android-sdk/platform-tools/adb - TMP_DIR=/tmp before_install: - sh -e /etc/init.d/xvfb start - mkdir -p $TMP_DIR/sdcard - mksdcard -l jetpackSdCard 1024M $TMP_DIR/sdcard/jpmsdcard.img - rm -f $TMP_DIR/sdcard/jpmsdcard.img.lock - echo no | android create avd --force -n jpm -t android-19 --abi armeabi-v7a - emulator -avd jpm -sdcard $TMP_DIR/sdcard/jpmsdcard.img -no-audio -gpu off -no-boot-anim -noskin & - android-wait-for-emulator before_script: - npm install -g get-firefox - git clone --depth 1 -b fixes https://github.com/ncalexan/jpm-mobile.git $TMP_DIR/jpm-mobile - cd $TMP_DIR/jpm-mobile - npm link - cd $TRAVIS_BUILD_DIR - get-firefox -c -p android -t $TMP_DIR/fennec.apk - adb wait-for-device - adb emu input keyevent 82 & - adb install $TMP_DIR/fennec.apk script: - jpm-mobile test -v --adb $JPM_ADB_PATH -b $JPM_FIREFOX_BINARY