Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

AmiGO is the public interface for the Gene Ontology.

License

NotificationsYou must be signed in to change notification settings

geneontology/amigo

Repository files navigation

This README file will be filled out more in the future. However, forthe time being, please see theAmiGO 2 Manualfor more details about the code and installation. You may also beinterested in the related information found inBBOP JS.

Installation

The main installation information is availableon the wiki.

Local Development with Docker Compose

Initial Setup

GOlr Data

This setup assumes that you have GOlr data saved in a sibling directory calledamigo-data. Set that up by running:

mkdir -p ../amigo-data/srv-solr-data/index# Warning! This is a multi-gigabyte download. Make sure you're ready.wget -P ../amigo-data http://current.geneontology.org/products/solr/golr-index-contents.tgztar -xvzf ../amigo-data/golr-index-contents.tgz -C ../amigo-data/srv-solr-data/index

Config File

Copy the provided example config file to the main config file:

cp conf/examples/amigo.yaml.localhost_docker_loader conf/amigo.yaml

Running AmiGO

Start the AmiGO service via Docker Compose:

docker compose up

Viewing logs

The Apache access and error logs can be viewed by running:

docker composeexec amigo tail -f /var/log/apache2/access.log /var/log/apache2/error.log

Frontend Development

JavaScript files can be watched and compiled by running:

docker composeexec -w /srv/amigo amigo node_modules/.bin/gulp watch-js

Caveats

This setup mounts your local checkout into the/srv/amigo directory in the Docker container. This means that any changes you make to the files in your local checkout will be reflected in the running AmiGO service. However, the AmiGO startup process will modify the path toconfig.pl in various files inperl/bin andperl/lib.DO NOT COMMIT THESE CHANGES.

Provisioning & Orchestration

Seedocs.

Jenkins (example)

Loading

This is a load example usingthis configuration.

## Get to the app home and make sure we're in the right place.cd /home/bbop/local/src/git/amigogit reset --hard&& git pull## Get the environment and variables ready.npm installcp conf/examples/amigo.yaml.tomodachi conf/amigo.yaml## Need to generate config.pl./node_modules/.bin/gulp install## Do the load../node_modules/.bin/gulp message-load-start/bin/rm -f /tmp/golr_timestamp.log./node_modules/.bin/gulp golr-purge./node_modules/.bin/gulp check-ontology-data./node_modules/.bin/gulp load-all./node_modules/.bin/gulp message-load-clear

Deployment & Unit Tests

This is an example automatic deployment and unit/app testing usingthis configuration.

## I believe Xvfb should die on shell exit?Xvfb :1 -screen 5 1024x768x8&## Get to the app home and make sure we're in the right place.cd /home/bbop/local/src/git/amigogit pull&& git reset --hard## Get the environment and variables ready.npm installcp conf/examples/amigo.yaml.tomodachi conf/amigo.yaml## Need to generate config.pl./node_modules/.bin/gulp install## Make the proper python virtualenv setup with the libs we need.cd test-app/behavevirtualenv`pwd`source bin/activatepip install selenium behave jsonpath-rw## Get back to top.cd ../..## Run unit tests against AmiGO labs (master).DISPLAY=:1.5 ./node_modules/.bin/gulp tests## Pop out of our wonderland.deactivate

Releases (legacy setups)

The SOP for a metadata release; i.e. new npm packages is:

  • npm install
  • gulp release
  • cd javascript/npm/amigo2-instance-data/ && gulp release && cd ../bbop-widget-set && gulp release && cd ../../..
  • git commit -a -m "SOP update for metadata"
  • git push

Releases (docker; WIP)

The SOP for a metadata release; i.e. new npm packages is:

  • [ Get geneontology/amigo-standalone running; might be easiest to just give it a small index and invade]
  • docker ps
  • docker exec -u 0 -it whatever_name /bin/bash
  • root@amigo:/srv/amigo# git reset --hard && git pull
  • root@amigo:/srv/amigo# npm install
  • root@amigo:/srv/amigo# cp conf/examples/amigo.yaml.public conf/amigo.yaml
  • root@amigo:/srv/amigo# mg conf/amigo.yaml
  • [ fix metadata paths to '/srv/amigo' ]
  • ./node_modules/.bin/gulp install
  • ./node_modules/.bin/gulp release
  • cd javascript/npm/amigo2-instance-data/
  • /srv/amigo/node_modules/.bin/gulp release
  • cd ../bbop-widget-set && npm install gulp-mocha
  • /srv/amigo/node_modules/.bin/gulp release
  • cd ../../..

The last step there errors out for various "Error: auth required for publishing" reasons, obviously.WIP items:

  • TODO: outline how to add npm auth
  • TODO: outline what to do with the package.json files (need GH auth)
  • TODO: outline outline what to do is the package-lock.json files get updated

[8]ページ先頭

©2009-2025 Movatter.jp