Skip to content

Commit

Permalink
Merge branch 'master' of ssh://github.com/GMOD/JBrowse
Browse files Browse the repository at this point in the history
  • Loading branch information
childers committed Feb 15, 2018
2 parents db01bc0 + f742408 commit 62f5773
Show file tree
Hide file tree
Showing 18 changed files with 695 additions and 426 deletions.
7 changes: 2 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,10 @@
.#*
\#*\#
*.index
/bin/wig2png
*.pyc
*TODO.txt
Makefile
/sample_data/json
/src/wig2png/config.log
/src/wig2png/config.status
/src/wig2png/src/config.h
/docs/jsdoc/
/*-debug.html
/extlib*
Expand Down Expand Up @@ -46,10 +42,11 @@ _Inline
.DS_Store
blib
pm_to_blib
bin/wig2png.dSYM
bower_components
src/dojo-themes
themes/*/css
.sass-cache
.vscode/
*driver.log
JBrowse-*/
JBrowse-*.zip
96 changes: 66 additions & 30 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,44 +1,80 @@
sudo: false
dist: trusty
language: perl
python: "2.7.10"
python: 2.7.10
perl:
- "5.26"
- "5.14"
- '5.26'
- '5.14'
addons:
apt:
packages:
- libdb-dev
- libgd2-noxpm-dev
firefox: "58.0"
firefox: '58.0'
cache:
directories:
- extlib/
- $HOME/perl5/
before_install:
#install geckodriver for the selenium tests :-P
- wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
- mkdir geckodriver
- tar -xzf geckodriver-v0.19.1-linux64.tar.gz -C geckodriver
- export PATH=$PATH:$PWD/geckodriver
# install perl deps
- cpanm --notest GD::Image Text::Markdown DateTime
#- cpanm --notest git://github.com/bioperl/[email protected]
# and jshint for the JS code
- npm install -g jshint
- "$HOME/perl5/"
- node_modules/
- "$HOME/python/"
- "$HOME/.nvm/"
- "$HOME/geckodriver"
install:
- virtualenv ~/python
- source ~/python/bin/activate
- pip install nose selenium
- bash setup.sh legacy
before_script:
- ./jb_run.js -p 9000 &
- |
if [[ ! -f ~/geckodriver/geckodriver ]]; then
rm -rf ~/geckodriver;
mkdir ~/geckodriver;
wget -O - https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz | tar -xzf - -C ~/geckodriver;
fi
- export PATH=$PATH:$HOME/geckodriver
- cpanm --notest GD::Image Text::Markdown DateTime JSON
- npm install -g jshint
# only init the python virtualenv if it did not show up in our build cache
- if [[ ! -f ~/python/bin/activate ]]; then virtualenv ~/python; fi
- source ~/python/bin/activate
- pip install nose selenium
script:
- jshint src/JBrowse/
- prove -j4 -Isrc/perl5 -lr tests/perl_tests
- MOZ_HEADLESS=1 SELENIUM_BROWSER=firefox JBROWSE_URL=http://localhost:9000/index.html nosetests tests/selenium_tests/
# only run `make release` for builds on master, or on a tag, or on a pull request
- if [[ "x$TRAVIS_TAG" != "x" || $TRAVIS_BRANCH = "master" || $TRAVIS_PULL_REQUEST != "false" ]]; then make -f build/Makefile release; fi
- jshint src/JBrowse/
- if [[ "x$TRAVIS_TAG" != "x" ]]; then build/set_package_versions.pl $TRAVIS_TAG src/JBrowse/package.json package.json; fi
- RELEASE_VERSION=`node -e 'require("fs").readFile("src/JBrowse/package.json", (e,d)=>console.log(JSON.parse(d).version))'`
- BUILD_DIR=$PWD
# if we are building for inclusion into the `dev` branch, run the minification and test against that
- |
if [[ "x$TRAVIS_TAG" != "x" || $TRAVIS_BRANCH = "master" || $TRAVIS_BRANCH = "dev" || $TRAVIS_PULL_REQUEST != "false" ]]; then
make -f build/Makefile release;
rm -rf JBrowse-*/;
unzip -q JBrowse-$RELEASE_VERSION.zip;
cp -r tests/ JBrowse-$RELEASE_VERSION/;
cd JBrowse-$RELEASE_VERSION/;
fi
- ./setup.sh legacy;
- prove -Isrc/perl5 -r -j3 tests/perl_tests;
- utils/jb_run.js -p 9000 &
- MOZ_HEADLESS=1 SELENIUM_BROWSER=firefox JBROWSE_URL=http://localhost:9000/index.html tests/selenium_tests/travis_wrapper.sh;
- cd $BUILD_DIR
after_failure:
- cat JBrowse-1.x.x-dev/setup.log
- find JBrowse-1.x.x-dev/extlib/lib/perl5
- cat JBrowse-1.x.x-dev/src/build-report.txt
- cat JBrowse-*/setup.log
- find JBrowse-*/extlib/lib/perl5
- cat JBrowse-*/src/build-report.txt
deploy:
# upload both minified and non-minified builds to GitHub releases
- provider: releases
api_key:
secure: BuOD7rqrcGKT3g0hVY5AGpJI/Kkko4DhSIYSUQ28sS2AOdoNyTD0t5doL/Kiq4BC41q198tbFFt1dnXGdo8YKpBSXO/uGUuuiGtMFHM++I84oLq20p49iyrenNZ4m/jy/Q4YtizIYLs83DVzVdQzhJ5hrTx6f+d1gc9EgaMeBF4=
file: JBrowse-1.*.zip
file_glob: true
skip_cleanup: true
on:
repo: GMOD/jbrowse
perl: 5.26
tags: true
# upload regular non-minified version to npm
- provider: npm
email: [email protected]
skip_cleanup: true
api_key:
secure: mgvlVdeMAR35C69+NERuYK4YGwbBAQsnSXS7IJhn3CRNgbtWh2zqaVV8NbHWitD9RJmocTbkIe94MfD8HfI3zBAgIVewckQ0QWMyjAJuWJR2Zw91R309aIQpbsix4kNCP9RDDrtfzovptBJ6JS8UwEk5CsQ7Wfohctek59+UnyU=
on:
repo: GMOD/jbrowse
perl: 5.26
tags: true
29 changes: 12 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Build status](https://travis-ci.org/GMOD/jbrowse.svg?branch=master)](https://travis-ci.org/GMOD/jbrowse)
[![Build status](https://travis-ci.org/GMOD/jbrowse.svg?branch=dev)](https://travis-ci.org/GMOD/jbrowse)

# Installing JBrowse

Expand Down Expand Up @@ -35,8 +35,7 @@ This allows JBrowse to be easily integrated into other applications. `jb_setup.

You can also optionally run build steps to create the minimized codebase. Extra perl dependencies Text::Markdown and DateTime are required to run the build step.

make -f build/Makefile release-notest
make -f build/Makefile release # alternate build with full test suite
make -f build/Makefile release

To build the Electron app (JBrowse desktop app), run the following

Expand Down Expand Up @@ -72,29 +71,25 @@ eggs for `selenium` and `nose` installed. Run the tests with:

MOZ_HEADLESS=1 SELENIUM_BROWSER=firefox JBROWSE_URL='http://localhost/jbrowse/index.html' nosetests

Supported browsers are 'firefox', 'chrome', 'phantom', and 'travis_saucelabs'. The Sauce Labs + Travis one will only work properly in a properly configured Travis CI build environment.
Supported browsers are 'firefox', 'chrome', 'phantom', and 'travis_saucelabs'. The Sauce Labs + Travis
one will only work in a properly configured Travis CI build environment.

# Cutting a JBrowse release

1. Edit the JBrowse `package.json` file and change 'version' to the version you are releasing. *Don't commit this change to the repository, it should stay as `dev` in git so that it shows up in analytics as a development version.*
NOTE: Beginning in 1.12.4,

2. Build the release packages: `make -f build/Makefile release`. The files produced during the build should not be committed to the repository either. There is also `make -f build/Makefile release-notest` for releases that don't need perl tests to be run. NOTE: you may need to use the command `ulimit -n 1000` to avoid "spawn EMFILE" build errors.
1. Make a tag in the repository for the release, named, e.g. `1.6.3-release`. This should cause Travis CI
to create a release on GitHub under https://github.com/GMOD/jbrowse/releases

3. Make a tag in the repository for the release, named, e.g. `1.6.3-release`.
1. Add release notes to the new release that Travis created.

4. `scp` the release .zip files (min and full) to jbrowse.org.
1. Write a blog post announcing the release, with links to the built releases on GitHub.

5. Add them to the Wordpress Downloads list so that we can track how
many times they are downloaded.
1. Update the "Install" page on the site to point to the newest release.

6. Write a blog post announcing the release. The `release-notes.html`
file made during the build might be useful for this.
1. Update the latest-release code checkout on the site, which the "Latest Release" demo on the jbrowse.org points to, to be an unzipped-and-set-up copy of the latest release.

7. Update the "Install" page on the site to point to the newest release.

8. Update the latest-release code checkout on the site, which the "Latest Release" demo on the jbrowse.org points to, to be an unzipped-and-set-up copy of the latest release.

9. Write an email announcing the release, sending to gmod-ajax,
1. Write an email announcing the release, sending to gmod-ajax,
jbrowse-dev. If it is a major release, add gmod-announce and make a GMOD news item.

As you can tell, this process could really use some more streamlining and automation.
Loading

0 comments on commit 62f5773

Please sign in to comment.