Skip to content

Commit a3571a3

Browse files
authored
Merge branch 'main' into fix/click_ver
2 parents bb61071 + ddbae80 commit a3571a3

File tree

11 files changed

+827
-11
lines changed

11 files changed

+827
-11
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Cleanup Dev
2+
3+
on:
4+
pull_request:
5+
types: [closed]
6+
7+
jobs:
8+
cleanup-ui-pr-preview:
9+
permissions:
10+
contents: write
11+
id-token: 'write'
12+
issues: write
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Check out gh-pages branch
17+
uses: actions/checkout@v3
18+
with:
19+
ref: gh-pages
20+
fetch-depth: 1
21+
22+
- name: Check if preview directory exists
23+
id: check-preview
24+
run: |
25+
if [ -d "ui/pr/${{ github.event.pull_request.number }}" ]; then
26+
echo "preview_exists=true" >> $GITHUB_OUTPUT
27+
echo "Preview directory exists for PR #${{ github.event.pull_request.number }}"
28+
else
29+
echo "preview_exists=false" >> $GITHUB_OUTPUT
30+
echo "No preview directory found for PR #${{ github.event.pull_request.number }}"
31+
fi
32+
33+
- name: Create an empty directory for cleanup
34+
if: steps.check-preview.outputs.preview_exists == 'true'
35+
run: mkdir -p empty
36+
37+
- name: Remove GitHub Pages Build
38+
if: steps.check-preview.outputs.preview_exists == 'true'
39+
uses: peaceiris/actions-gh-pages@v3
40+
with:
41+
github_token: ${{ secrets.GITHUB_TOKEN }}
42+
publish_dir: ./empty
43+
destination_dir: ui/pr/${{ github.event.pull_request.number }}
44+
keep_files: false
45+
user_name: ${{ github.actor }}
46+
user_email: ${{ github.actor }}@users.noreply.github.com
47+
publish_branch: gh-pages
48+
commit_message: 'chore: Clean up preview for PR #${{ github.event.pull_request.number }}'
49+
50+
- name: Log Cleanup Completion
51+
run: echo "Cleanup completed for PR \#${{ github.event.pull_request.number }}"
52+
53+
update-preview-comment:
54+
needs: [cleanup-ui-pr-preview]
55+
name: Update PR Comment
56+
permissions:
57+
pull-requests: write
58+
issues: write
59+
runs-on: ubuntu-latest
60+
steps:
61+
- name: Update PR comment to reflect cleanup
62+
uses: peter-evans/find-comment@v2
63+
id: find-comment
64+
with:
65+
token: ${{ secrets.GITHUB_TOKEN }}
66+
issue-number: ${{ github.event.pull_request.number }}
67+
body-includes: '<!-- pr-preview-comment -->'
68+
69+
- name: Update PR comment to reflect cleanup
70+
if: steps.find-comment.outputs.comment-id != ''
71+
uses: peter-evans/create-or-update-comment@v3
72+
with:
73+
token: ${{ secrets.GITHUB_TOKEN }}
74+
comment-id: ${{ steps.find-comment.outputs.comment-id }}
75+
issue-number: ${{ github.event.pull_request.number }}
76+
edit-mode: replace
77+
body: |
78+
<!-- pr-preview-comment -->
79+
🧹 The live preview for this PR has been removed.
80+
81+
- name: Log comment update status
82+
run: |
83+
if [ "${{ steps.find-comment.outputs.comment-id }}" != "" ]; then
84+
echo "Updated existing preview comment"
85+
else
86+
echo "No preview comment found to update"
87+
fi

.github/workflows/development.yml

Lines changed: 125 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ jobs:
2929
- name: Check out code
3030
uses: actions/checkout@v4
3131

32+
- name: Set up Node.js 22
33+
uses: actions/setup-node@v4
34+
with:
35+
node-version: '22'
36+
3237
- name: Install dependencies
3338
run: npm ci
3439

@@ -59,6 +64,11 @@ jobs:
5964
- name: Check out code
6065
uses: actions/checkout@v4
6166

67+
- name: Set up Node.js 22
68+
uses: actions/setup-node@v4
69+
with:
70+
node-version: '22'
71+
6272
- name: Install dependencies
6373
run: npm ci
6474

@@ -81,14 +91,19 @@ jobs:
8191
- name: Run pre-commit checks
8292
run: SKIP=ruff-format pre-commit run --all-files
8393

84-
ui-precommit-check:
94+
ui-precommit-checks:
8595
permissions:
8696
contents: "read"
8797
runs-on: ubuntu-latest
8898
steps:
8999
- name: Check out code
90100
uses: actions/checkout@v4
91101

102+
- name: Set up Node.js 22
103+
uses: actions/setup-node@v4
104+
with:
105+
node-version: '22'
106+
92107
- name: Install dependencies
93108
run: npm ci
94109

@@ -119,6 +134,11 @@ jobs:
119134
- name: Check out code
120135
uses: actions/checkout@v4
121136

137+
- name: Set up Node.js 22
138+
uses: actions/setup-node@v4
139+
with:
140+
node-version: '22'
141+
122142
- name: Install dependencies
123143
run: npm ci
124144

@@ -149,6 +169,11 @@ jobs:
149169
- name: Check out code
150170
uses: actions/checkout@v4
151171

172+
- name: Set up Node.js 22
173+
uses: actions/setup-node@v4
174+
with:
175+
node-version: '22'
176+
152177
- name: Install dependencies
153178
run: npm ci
154179

@@ -208,6 +233,105 @@ jobs:
208233
`
209234
})
210235
236+
ui-pr-preview:
237+
needs: [ui-quality-checks, ui-precommit-checks, ui-unit-tests, ui-integration-tests]
238+
permissions:
239+
contents: write
240+
pull-requests: write
241+
issues: write
242+
runs-on: ubuntu-latest
243+
steps:
244+
- name: Check out code
245+
uses: actions/checkout@v3
246+
with:
247+
fetch-depth: 0
248+
249+
- name: Check if UI-related files changed
250+
id: check-changes
251+
run: |
252+
BASE_BRANCH=${{ github.event.pull_request.base.ref }}
253+
CHANGED_FILES=$(git diff --name-only origin/$BASE_BRANCH...HEAD)
254+
SHOULD_BUILD=false
255+
256+
if echo "$CHANGED_FILES" | grep -q "^src/ui/"; then
257+
echo "UI source files changed"
258+
SHOULD_BUILD=true
259+
fi
260+
261+
echo "should_build=$SHOULD_BUILD" >> $GITHUB_OUTPUT
262+
echo "Should build: $SHOULD_BUILD"
263+
264+
- name: Install dependencies
265+
if: steps.check-changes.outputs.should_build == 'true'
266+
run: npm ci
267+
268+
- name: Build app to root
269+
if: steps.check-changes.outputs.should_build == 'true'
270+
id: build
271+
run: |
272+
# Export vars to ensure they are loaded before build
273+
export $(grep -v '^#' .env.development | xargs)
274+
275+
PR_NUMBER=${{ github.event.pull_request.number }}
276+
echo "pr_number=${PR_NUMBER}" >> $GITHUB_OUTPUT
277+
278+
# Set asset prefix and base path with PR number
279+
ASSET_PREFIX=https://neuralmagic.github.io/guidellm/ui/pr/${PR_NUMBER}
280+
USE_MOCK_DATA=true
281+
BASE_PATH=/ui/pr/${PR_NUMBER}
282+
GIT_SHA=${{ github.sha }}
283+
export ASSET_PREFIX=${ASSET_PREFIX}
284+
export BASE_PATH=${BASE_PATH}
285+
export GIT_SHA=${GIT_SHA}
286+
export USE_MOCK_DATA=${USE_MOCK_DATA}
287+
npm run build
288+
289+
- name: Deploy to GitHub Pages
290+
if: steps.check-changes.outputs.should_build == 'true'
291+
uses: peaceiris/actions-gh-pages@v3
292+
with:
293+
github_token: ${{ secrets.GITHUB_TOKEN }}
294+
publish_dir: ./src/ui/out
295+
destination_dir: ui/pr/${{ steps.build.outputs.pr_number }}
296+
keep_files: false
297+
user_name: ${{ github.actor }}
298+
user_email: ${{ github.actor }}@users.noreply.github.com
299+
publish_branch: gh-pages
300+
commit_message: 'build: Deploy preview build for PR #${{ github.event.pull_request.number }}'
301+
302+
- name: Set deployment url
303+
if: steps.check-changes.outputs.should_build == 'true'
304+
id: deploy
305+
run: |
306+
DEPLOY_URL=https://neuralmagic.github.io/guidellm/ui/pr/${{ steps.build.outputs.pr_number }}
307+
echo "url=${DEPLOY_URL}" >> $GITHUB_OUTPUT
308+
309+
- name: Find PR comment
310+
if: steps.check-changes.outputs.should_build == 'true'
311+
uses: peter-evans/find-comment@v2
312+
id: find-comment
313+
with:
314+
token: ${{ secrets.GITHUB_TOKEN }}
315+
issue-number: ${{ github.event.pull_request.number }}
316+
body-includes: '<!-- pr-preview-comment -->'
317+
318+
- name: Post Deployment URL to PR
319+
if: steps.check-changes.outputs.should_build == 'true'
320+
uses: peter-evans/create-or-update-comment@v3
321+
with:
322+
token: ${{ secrets.GITHUB_TOKEN }}
323+
comment-id: ${{ steps.find-comment.outputs.comment-id }}
324+
issue-number: ${{ github.event.pull_request.number }}
325+
edit-mode: replace
326+
body: |
327+
<!-- pr-preview-comment -->
328+
🎉 **Live Preview:** [Click here to view the live version](${{ steps.deploy.outputs.url }})
329+
*Last updated: ${{ github.sha }}*
330+
331+
- name: Skip build notification
332+
if: steps.check-changes.outputs.should_build == 'false'
333+
run: echo "Skipping UI preview build - no relevant files changed"
334+
211335
build-and-push-container:
212336
# Only build if the PR branch is local
213337
if: github.event.pull_request.head.repo.full_name == github.repository

0 commit comments

Comments
 (0)