Skip to content

Clinical-Genomics/arnold

Repository files navigation

Arnold Coverage Status

Arnold is a REST-API and mongodb database with two collections - sample and step. Currently, soring lims-data only.

Data is continuously pushed into the database from lims steps via cg_lims commands, using the arnold REST-API.

Read more about the lims data that is being pushed to Arnold.

Usage

Development

Clone and install:

git clone https://github.com/Clinical-Genomics/arnold
cd arnold
pip install -r requirements.txt -e .

Create a .env file with the variables DB_NAME and DB_URI

DB_URI= 'mongodb://localhost:<port>'
DB_NAME= 'arnold'

Given you have a MongoDB server listening on the port specified in .env, the arnold rest API can be run from commandline

arnold serve --reload

Docker image

Arnold can also run as a container. The image is available on Docker Hub or can be build using the Dockerfile provided in this repository.

To build a new image from the Dockerfile use the commands: docker build -t arnold .

To run the image use the following command: docker run --name arnold

To remove the container, type: docker rm arnold

Release model

Arnold is using github flow release model as described in our development manual.

Steps to make a new release:

  1. Get you PR approved.
  2. Append the version bump to PR title. Eg. Update README becomes Update Readme (patch)
  3. Select squash and merge
  4. Write a change log comment.
  5. Merge.

Deploying to staging

Opening pull requests in Arnold repository will enable a Github Action to build containers and publish to arnold-stage dockerhub with each commit.

Two tags will be published: one with the name of the branch and another tagged "latest".

Steps to test current branch on staging:

ssh [email protected]

sudo -iu hiseq.clinical

ssh localhost

If you made changes to internal app : systemctl --user restart arnold.target

Your branch should be deployed to staging at https://arnold-stage.scilifelab.se

If for some reason you cannot access the application at given address, check status of the container: systemctl --user status arnoldApp.service

Deploying to production

Use update-arnold.sh script to update production both on Hasta and CGVS. Please follow the development guide and servers repo when doing so. It is also important to keep those involved informed.