Skip to content

CI system (via GitHub actions)

Amy Glen edited this page Aug 19, 2022 · 15 revisions

Overview

Every commit to master automatically runs our CI test suite on an EC2 instance via Github Actions (using a "self-hosted runner").

This is what determines the passing/failing 'Test Build' badge in our GitHub repo.

The EC2 instance this automatic testing is done on is cicd.rtx.ai; it should be left running all the time. Ask another dev if you need access to this instance.

Starting and stopping the runner

The runner should always be left running, but in the event you need to start it, do the following:

ssh [email protected]
cd actions-runner/
sudo ./svc.sh start

If instead you just want to see its status, use this command:

sudo ./svc.sh status

And if you need to stop the runner for some reason (we don't typically do this), use this command:

sudo ./svc.sh stop

More details/how-tos for the runner software are here.

The runner's workflow

With every run, the runner does a fresh build of ARAX via Docker from the master branch. It uses the "merged" Dockerfile (at RTX/code/DockerBuild/Merged-Dockerfile).

The exact steps the runner takes are defined in the config file at RTX/.github/workflows/pytest.yml.

Note that, as part of its workflow, the runner automatically downloads the necessary config_secrets.json file and also takes care of downloading all necessary databases from arax.ncats.io; it also takes care of removing any databases it no longer needs (i.e., that no longer appear in config_dbs.json in the master branch). Thus you do not need to worry about uploading config files or database files to cicd.rtx.ai.

As part of its workflow it also automatically creates a kg2_url_override.txt file that ensures ARAX will use the KG2 API on localhost (i.e., on cicd.rtx.ai).