Skip to content

Updating Galaxy Test

Marius van den Beek edited this page May 15, 2020 · 27 revisions

Before you begin

See Getting Set Up At TACC. Make sure you meet the requirements.'

Branch

The branch that Galaxy is running is configured in env/test/group_vars/all/all.yml.

Client Build

As of 18.09, the client always needs to be built regardless of branch. This is done by Ansible. If you need to update the client without updating Galaxy itself, you can do so with ansible-env test client.

Update Procedure

I've been unsuccessful in getting Ansible to properly update the galaxy_commit_id variable in the middle of a playbook run. As a result, the Galaxy clone on Pulsar servers would be updated to the previous version of Galaxy (the version in env/test/files/galaxy/galaxy_version.yml at the time of first running ansible-env test update) and the commit hash in welcome.html was also being set to the previous version. As a temporary solution, you can run these three processes separately, as shown in the instructions below.

user@local$ pass psc/xcgalaxy/ssh/private | ssh-add -
user@local$ pass tacc/xcgalaxy/ssh/private | ssh-add -
user@galaxy04$ ssh -A galaxy04.tacc.utexas.edu
user@galaxy04$ . ./ansible/bin/activate
user@galaxy04$ cd usegalaxy-playbook
user@galaxy04$ git pull && git submodule update
user@galaxy04$ ansible-galaxy role install -r requirements.yml   # use --force if role versions have changed
user@galaxy04$ ansible-env test update --limit='!pulsargalaxyservers' && ansible-env test update --limit=pulsargalaxyservers && ansible-env test static
user@galaxy04$ git diff     # verify that none of the mutable configs pulled to the playbook are mangled
user@galaxy04$ git add -- .
user@galaxy04$ git commit -m 'Update Test'
user@galaxy04$ git push

Bugs

As of 2019-04-09, Test runs from Python 3.6 installed via the tool depenency Conda in the env _galaxy_. However, this has been done without a virtualenv as described in the 19.01 docs. Conda's Python has a few dependencies, one of which is certifi, also one of Galaxy's dependencies. When Galaxy's pinned version of certifi changes, installing the new version with pip (as performed by Ansible) will fail. We need a proper solution for this, but in the meantime, the solution is to update certifi prior to updating Galaxy with e.g.:

$ /cvmfs/test.galaxyproject.org/deps/_conda/bin/conda install -n _galaxy_ certifi=YYYY.MM.DD