-
Notifications
You must be signed in to change notification settings - Fork 21
CI system (via GitHub actions)
Every commit to master
automatically runs our ARAX Pytest 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.
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.
With every run, the runner does a fresh build of ARAX and RTX-KG2 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 - 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 inconfig_dbs.json
in themaster
branch) ***- Thus you do not need to worry about uploading database files or config files to
cicd.rtx.ai
, nor worry about it running out of disk space - Note that database files are not repeatedly downloaded with every run; instead, they are downloaded into their proper KG2 subdirectory in
/mnt/data/orangeboard/databases
only once (if not already present)
- Thus you do not need to worry about uploading database files or config files to
- Creates a
kg2_url_override.txt
file that ensures ARAX will use the KG2 API on localhost (i.e., oncicd.rtx.ai
)
*** NOTE: Step 2 is not quite working automatically currently (see issue #1914). Until that issue is addressed, any time the contents of config_dbs.json
changes in master
, someone needs to go onto cicd.rtx.ai
and manually run the Database Manager's database update method. Steps to do that are the following:
ssh [email protected]
cd RTX/
git pull origin master
python3 code/ARAX/ARAXQuery/ARAX_database_manager.py --mnt --skip-if-exists --remove_unused