|
This guide is intended for maintaining non-core update sites by automating builds with Travis CI.
|
Requirements
- An open-source project hosted on GitHub
- Logging in to Travis CI with your corresponding GitHub account
- Travis command line tools
- An account on this wiki
- An initialized upload password. (NOTE - not necessarily the same as your Wiki password)
Additional resources
Automatic Uploads via Travis CI
Travis CI can be used to automatically build a repository in response to code changes. To ease the maintenance of ImageJ update sites, we can use Travis to automatically upload the latest version of a site. This is done by creating a .travis.yml
file in your update site’s GitHub repository that does the following:
- Create a fresh ImageJ.app
- Build the update site’s repository and move the required artifacts (e.g.
.jars
) to their intended locations in the ImageJ.app - Upload the local update site state to your Wiki update site
As a starting point you can copy the following .travis.yml
:
language: java
sudo: false
cache:
directories:
- $HOME/.m2/
install:
- mvn package
script:
- ./.travis-deploy.sh
branches:
only:
- master
and this script .travis-deploy.sh
:
#!/usr/bin/env sh
set -e
# Define some variables
export USER="Username"
export UPDATE_SITE="/update-sites"
export IJ_PATH="$HOME/Fiji.app"
export URL="http://sites.imagej.net/$UPDATE_SITE/"
export IJ_LAUNCHER="$IJ_PATH/ImageJ-linux64"
export PATH="$IJ_PATH:$PATH"
# Install ImageJ
mkdir -p $IJ_PATH/
cd $HOME/
wget --no-check-certificate https://downloads.imagej.net/fiji/latest/fiji-linux64.zip
unzip fiji-linux64.zip
# Install the package
cd $TRAVIS_BUILD_DIR/
mvn clean install -Dscijava.app.directory=$IJ_PATH -Ddelete.other.versions=true
# Deploy the package
# Deploy the package
$IJ_LAUNCHER --update edit-update-site $UPDATE_SITE $URL "webdav:$USER:$WIKI_UPLOAD_PASS" .
$IJ_LAUNCHER --update update
$IJ_LAUNCHER --update upload --update-site $UPDATE_SITE --force-shadow jars/YOUR-FILE.jar
Don’t forget to replace
export USER="Username"
export UPDATE_SITE="/update-sites"
by your informations.
Encrypting your password
To upload to your wiki update site, you will need to provide Travis CI with a WIKI_UPLOAD_PASS
environment variable, which should evaluate to the upload password of the Wiki account performing the upload. To do so securely, follow the instructions on the encrypting environment variables.
Note that when you run:
$ travis encrypt WIKI_UPLOAD_PASS=super_secret --add env.matrix
in your repository, the .travis.yml
will automatically be updated appropriately. You can simply commit and push the changes.
Non-Mavenized Files
Travis CI is capable of building many languages besides Java. If you cannot use Maven with a scijava.app.directory
then you need to replace the following line of your .travis.yml
:
- mvn clean install -Dscijava.app.directory="$(pwd)" -Ddelete.other.versions=true
with a sequence of commands that will move your build artifacts to the appropriate /jars
or /plugins
directory, as appropriate for your update site.
This is also true if you have custom scripts, macros, etc… if these files are not present in the correct locations of the local ImageJ.app, they will appear to have been deleted.
Caveats
![]() |
USE CAUTION HERE
|