Add system-wide pip installs (acceptable and safe in Docker container… #1430
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "Test Build" | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: [ master, production, itrb-test, dev ] | |
| paths: | |
| - 'code/**' | |
| - 'DockerBuild/**' | |
| - 'requirements.txt' | |
| - '.github/workflows/pytest.yml' | |
| pull_request: | |
| branches: [ master, production, itrb-test, dev ] | |
| paths: | |
| - 'code/**' | |
| - 'DockerBuild/**' | |
| - 'requirements.txt' | |
| - '.github/workflows/pytest.yml' | |
| jobs: | |
| analyze: | |
| name: Analyze | |
| runs-on: [self-hosted, ARAX, docker] | |
| env: | |
| PYTHONPATH: ${{ github.workspace }}/code | |
| permissions: | |
| actions: read | |
| contents: read | |
| security-events: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| language: [ 'python' ] | |
| steps: | |
| - name: Checkout code to RTX directory | |
| uses: actions/checkout@v2 | |
| with: | |
| #path: /home/ubuntu/RTX | |
| ref: ${{ github.head_ref || github.ref_name }} | |
| - name: Set up Python environment | |
| uses: RTXteam/setup-python@v4 | |
| with: | |
| python-version: '3.12' | |
| - name: Set up config files | |
| run: | | |
| scp [email protected]:config_secrets.json /mnt/config/config_secrets.json | |
| - name: Download databases into CICD instance | |
| working-directory: ${{ github.workspace }} | |
| # continue-on-error: true | |
| run: | | |
| python -m pip install --upgrade pip | |
| python -m pip install -r requirements.txt | |
| python code/ARAX/ARAXQuery/ARAX_database_manager.py --mnt --skip-if-exists --remove_unused | |
| - name: Stop any running containers | |
| continue-on-error: true | |
| run: | | |
| if [[ -n $(sudo docker ps -q) ]]; then | |
| sudo docker stop $(sudo docker ps -q) | |
| else | |
| echo "No left over containers" | |
| fi | |
| - name: Clean up any left over containers | |
| continue-on-error: true | |
| run: | | |
| if [[ -n $(sudo docker ps -aq) ]]; then | |
| sudo docker rm $(sudo docker ps -aq) | |
| else | |
| echo "No left over containers" | |
| fi | |
| - name: Clean up any left over images | |
| continue-on-error: true | |
| run: | | |
| if [[ -n $(sudo docker images -aq) ]]; then | |
| sudo docker rmi -f $(sudo docker images -aq) | |
| else | |
| echo "No left over images" | |
| fi | |
| - name: Build docker image | |
| run: sudo docker build --no-cache=true --rm -t rtx:test DockerBuild/ -f DockerBuild/CICD-Dockerfile | |
| - name: Run docker container | |
| run: sudo docker run -d -it --name rtx_test -v /mnt/data/orangeboard/databases:/mnt/data/orangeboard/databases -v /mnt/config/config_secrets.json:/mnt/data/orangeboard/production/RTX/code/config_secrets.json rtx:test | |
| - name: Create symlinks | |
| run: sudo docker exec rtx_test bash -c "sudo -u rt bash -c 'cd /mnt/data/orangeboard/production/RTX && python3 code/ARAX/ARAXQuery/ARAX_database_manager.py'" | |
| - name: Build KP info cache | |
| run: sudo docker exec rtx_test bash -c "cd /mnt/data/orangeboard/production/RTX/code/ARAX/ARAXQuery/Expand && python3 kp_info_cacher.py" | |
| - name: Start services | |
| run: | | |
| sudo docker exec rtx_test service apache2 start | |
| sudo docker exec rtx_test service RTX_OpenAPI_production start | |
| sudo docker exec rtx_test service RTX_Complete start | |
| - name: Run tests with pytest | |
| run: sudo docker exec rtx_test bash -c "cd /mnt/data/orangeboard/production/RTX/code/ARAX/test && pytest -v --disable-pytest-warnings" | |
| - name: Remove and delete all docker containers & images | |
| continue-on-error: true | |
| run: | | |
| sudo docker stop $(sudo docker ps -aq) | |
| sudo docker rm $(sudo docker ps -aq) | |
| sudo docker rmi $(sudo docker images -q) |