-
Notifications
You must be signed in to change notification settings - Fork 3
129 lines (128 loc) · 5.09 KB
/
frontend_checks.yml
File metadata and controls
129 lines (128 loc) · 5.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: frontend checks
on:
push:
branches:
- main
pull_request:
paths:
- ".github/workflows/frontend_checks.yml"
- "docker/**"
- "frontend/**"
jobs:
frontend-checks:
runs-on: self-hosted
env:
API_WORKERS: 1
VITE_APP_SERVER: http://localhost:13120
COMPOSE_PROFILES: "rq,backend,frontend"
BACKEND_HAS_CHANGED: false
RAY_HAS_CHANGED: false
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Checkout PR
if: github.event_name == 'pull_request'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh pr checkout ${{ github.event.pull_request.number }}
- name: Check for backend changes (pull request)
id: check_backend_changes_pr
if: github.event_name == 'pull_request'
run: |
git fetch origin ${{ github.event.pull_request.base.ref }}
base_branch="origin/${{ github.event.pull_request.base.ref }}"
if git diff --name-only $base_branch HEAD | grep -q -e '^backend/'; then
echo "BACKEND_HAS_CHANGED=true" >> $GITHUB_ENV
fi
- name: Check for backend changes (push)
id: check_backend_changes_push
if: github.event_name == 'push'
run: |
if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -q -e '^backend/'; then
echo "BACKEND_HAS_CHANGED=true" >> $GITHUB_ENV
fi
- name: Check for changes in ray (pull request)
id: check_ray_changes_pr
if: github.event_name == 'pull_request'
run: |
git fetch origin ${{ github.event.pull_request.base.ref }}
base_branch="origin/${{ github.event.pull_request.base.ref }}"
if git diff --name-only $base_branch HEAD | grep -q -e '^ray/'; then
echo "RAY_HAS_CHANGED=true" >> $GITHUB_ENV
fi
- name: Check for changes in ray (push)
id: check_ray_changes_push
if: github.event_name == 'push'
run: |
if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep -q -e '^ray/'; then
echo "RAY_HAS_CHANGED=true" >> $GITHUB_ENV
fi
- name: Prepare environment
run: |
./bin/setup-folders.sh
./bin/setup-envs.sh --project_name action-runner --port_prefix 131
sed -i 's/\(DATS_FRONTEND_DOCKER_VERSION=[0-9.]*\)/\1-${{ github.run_id }}/' docker/.env
sed -i 's/^RAY_DEVICE_IDS=.*/RAY_DEVICE_IDS=1/' docker/.env
if [ "${{ env.BACKEND_HAS_CHANGED }}" = "true" ]; then
sed -i 's/\(DATS_BACKEND_DOCKER_VERSION=[0-9.]*\)/\1-${{ github.run_id }}/' docker/.env
fi
if [ "${{ env.RAY_HAS_CHANGED }}" = "true" ]; then
sed -i 's/\(DATS_RAY_DOCKER_VERSION=[0-9.]*\)/\1-${{ github.run_id }}/' docker/.env
sed -i 's/ray_network/ray_network_${{ github.run_id }}/g' docker/compose.ray.yml
sed -i 's/ray_network/ray_network_${{ github.run_id }}/g' docker/compose.yml
echo "RAY_CACHE_DIR=$HOME/ray_cache" >> docker/.env
mkdir -p $HOME/ray_cache
chmod 777 $HOME/ray_cache
fi
- name: Build & Start Docker Containers
working-directory: docker
run: |
source .env
if [ "${{ env.RAY_HAS_CHANGED }}" = "true" ]; then
docker compose -f compose.ray.yml build
docker compose -f compose.ray.yml up --wait
fi
if [ "${{ env.BACKEND_HAS_CHANGED }}" = "true" ]; then
docker compose build dats-backend-api
fi
docker compose build dats-frontend
docker compose up --wait --quiet-pull
- name: Setup node
uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
working-directory: frontend
run: npm ci
- name: Check 1 - api client is up-to-date
working-directory: frontend
run: |
npm run update-api
npm run generate-api
- name: Add and commit changes
uses: EndBug/add-and-commit@v9
if: github.event_name == 'pull_request'
with:
add: "frontend/src/api"
message: "Update OpenAPI spec and client"
pathspec_error_handling: exitImmediately
default_author: github_actions
- name: Cleanup
working-directory: docker
if: always()
run: |
if [ "${{ env.RAY_HAS_CHANGED }}" = "true" ]; then
docker compose -f compose.ray.yml down -v
RAY_IMAGE=uhhlt/dats_ray:$(grep -oP 'DATS_RAY_DOCKER_VERSION=\K.*' .env)
docker rmi $RAY_IMAGE
fi
docker compose down -v
if [ "${{ env.BACKEND_HAS_CHANGED }}" = "true" ]; then
BACKEND_IMAGE=uhhlt/dats_backend:$(grep -oP 'DATS_BACKEND_DOCKER_VERSION=\K.*' .env)
docker rmi $BACKEND_IMAGE
fi
FRONTEND_IMAGE=uhhlt/dats_frontend:$(grep -oP 'DATS_FRONTEND_DOCKER_VERSION=\K.*' .env)
docker rmi $FRONTEND_IMAGE