@@ -17,28 +17,44 @@ jobs:
1717 VITE_APP_SERVER : http://localhost:13120
1818 COMPOSE_PROFILES : " weaviate,background,backend,frontend"
1919 BACKEND_HAS_NEW_REQUIREMENTS : false
20+ RAY_HAS_CHANGED : false
2021 steps :
2122 - uses : actions/checkout@v3
2223 - name : Checkout PR
2324 if : github.event_name == 'pull_request'
2425 env :
2526 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
2627 run : gh pr checkout ${{ github.event.pull_request.number }}
27- - name : Check for new backend requirements
28- id : check_backend_requirements
28+ - name : Check for new backend requirements (pull request)
29+ id : check_backend_requirements_pr
2930 if : github.event_name == 'pull_request'
3031 run : |
3132 base_branch=$(git merge-base origin/${{ github.event.pull_request.base.ref }} HEAD)
3233 if git diff --name-only $base_branch HEAD | grep -q -e '^backend/requirements.txt' -e '^backend/environment.yml'; then
3334 echo "BACKEND_HAS_NEW_REQUIREMENTS=true" >> $GITHUB_ENV
3435 fi
35- - name : Check for new backend requirements on push
36- id : check_backend_requirements2
36+ - name : Check for new backend requirements ( push)
37+ id : check_backend_requirements_push
3738 if : github.event_name == 'push'
3839 run : |
3940 if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -q -e '^backend/requirements.txt' -e '^backend/environment.yml'; then
4041 echo "BACKEND_HAS_NEW_REQUIREMENTS=true" >> $GITHUB_ENV
4142 fi
43+ - name : Check for changes in ray_model_worker (pull request)
44+ id : check_ray_model_worker_changes_pr
45+ if : github.event_name == 'pull_request'
46+ run : |
47+ base_branch=$(git merge-base origin/${{ github.event.pull_request.base.ref }} HEAD)
48+ if git diff --name-only $base_branch HEAD | grep -q -e '^backend/src/app/preprocessing/ray_model_worker/'; then
49+ echo "RAY_HAS_CHANGED=true" >> $GITHUB_ENV
50+ fi
51+ - name : Check for changes in ray_model_worker (push)
52+ id : check_ray_model_worker_changes_push
53+ if : github.event_name == 'push'
54+ run : |
55+ if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -q -e '^backend/src/app/preprocessing/ray_model_worker/'; then
56+ echo "RAY_HAS_CHANGED=true" >> $GITHUB_ENV
57+ fi
4258 - name : Prepare environment
4359 run : |
4460 ./bin/setup-folders.sh
4965 fi
5066 echo "MODELS_CACHE_DIR=$HOME/models_cache" >> docker/.env
5167 mkdir -p $HOME/models_cache
68+ if [ "${{ env.RAY_HAS_CHANGED }}" = "true" ]; then
69+ sed -i 's/\(DATS_RAY_DOCKER_VERSION=[0-9.]*\)/\1-${{ github.run_id }}/' docker/.env
70+ sed -i 's/ray_network/ray_network_${{ github.run_id }}/g' docker/compose.ray.yml
71+ sed -i 's/ray_network/ray_network_${{ github.run_id }}/g' docker/compose.yml
72+ echo "SPACY_CACHE_DIR=$HOME/spacy_models" >> docker/.env
73+ mkdir -p $HOME/spacy_models
74+ fi
5275 - name : Build & Start Docker Containers
5376 working-directory : docker
5477 run : |
78+ if [ "${{ env.RAY_HAS_CHANGED }}" = "true" ]; then
79+ docker compose -f compose.ray.yml build
80+ docker compose -f compose.ray.yml up --wait
81+ fi
5582 if [ "${{ env.BACKEND_HAS_NEW_REQUIREMENTS }}" = "true" ]; then
5683 docker compose build dats-backend-api
5784 fi
@@ -83,6 +110,15 @@ jobs:
83110 working-directory : docker
84111 if : always()
85112 run : |
113+ if [ "${{ env.RAY_HAS_CHANGED }}" = "true" ]; then
114+ docker compose -f compose.ray.yml down -v
115+ RAY_IMAGE=uhhlt/dats_ray:$(grep -oP 'DATS_RAY_DOCKER_VERSION=\K.*' .env)
116+ docker rmi $RAY_IMAGE
117+ fi
86118 docker compose down -v
119+ if [ "${{ env.BACKEND_HAS_NEW_REQUIREMENTS }}" = "true" ]; then
120+ BACKEND_IMAGE=uhhlt/dats_backend:$(grep -oP 'DATS_BACKEND_DOCKER_VERSION=\K.*' .env)
121+ docker rmi $BACKEND_IMAGE
122+ fi
87123 FRONTEND_IMAGE=uhhlt/dats_frontend:$(grep -oP 'DATS_FRONTEND_DOCKER_VERSION=\K.*' .env)
88124 docker rmi $FRONTEND_IMAGE
0 commit comments