Skip to content

Commit 9cf9121

Browse files
Copilotyi-nuo426
andcommitted
Add Meshery UI integration testing workflow and documentation
Co-authored-by: yi-nuo426 <218099172+yi-nuo426@users.noreply.github.com>
1 parent 872aaf1 commit 9cf9121

2 files changed

Lines changed: 96 additions & 0 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: Test Sistent with Meshery UI
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
6+
paths-ignore:
7+
- 'system/**/*'
8+
- '.github/**/*'
9+
- '*.md'
10+
11+
jobs:
12+
test-with-meshery-ui:
13+
name: Integration Test with Meshery UI
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout Sistent PR
17+
uses: actions/checkout@v6
18+
with:
19+
path: sistent
20+
21+
- name: Setup Node.js
22+
uses: actions/setup-node@v6
23+
with:
24+
node-version: '20'
25+
cache: 'npm'
26+
cache-dependency-path: sistent/package-lock.json
27+
28+
- name: Install Sistent Dependencies
29+
working-directory: sistent
30+
run: npm install
31+
32+
- name: Build Sistent
33+
working-directory: sistent
34+
run: npm run build
35+
36+
- name: Pack Sistent for Installation
37+
working-directory: sistent
38+
run: |
39+
npm pack
40+
echo "SISTENT_PACKAGE=$(ls *.tgz)" >> $GITHUB_ENV
41+
42+
- name: Checkout Meshery UI
43+
uses: actions/checkout@v6
44+
with:
45+
repository: meshery/meshery
46+
path: meshery
47+
fetch-depth: 1
48+
49+
- name: Install Meshery UI Dependencies
50+
working-directory: meshery/ui
51+
run: npm install
52+
53+
- name: Install Sistent from PR
54+
working-directory: meshery/ui
55+
run: npm install ../../sistent/${{ env.SISTENT_PACKAGE }}
56+
57+
- name: Build Meshery UI
58+
working-directory: meshery/ui
59+
run: |
60+
npm run build
61+
continue-on-error: false
62+
63+
- name: Run Meshery UI Tests
64+
working-directory: meshery/ui
65+
run: |
66+
if grep -q '"test"' package.json; then
67+
npm run test -- --passWithNoTests
68+
else
69+
echo "No tests found in Meshery UI, skipping test step"
70+
fi
71+
continue-on-error: false
72+
73+
- name: Integration Test Summary
74+
if: always()
75+
run: |
76+
echo "## Integration Test Results" >> $GITHUB_STEP_SUMMARY
77+
echo "" >> $GITHUB_STEP_SUMMARY
78+
echo "✅ Sistent changes were successfully tested against Meshery UI" >> $GITHUB_STEP_SUMMARY
79+
echo "" >> $GITHUB_STEP_SUMMARY
80+
echo "### Details" >> $GITHUB_STEP_SUMMARY
81+
echo "- **Sistent Package**: ${{ env.SISTENT_PACKAGE }}" >> $GITHUB_STEP_SUMMARY
82+
echo "- **Meshery UI Build**: ${{ job.status == 'success' && '✅ Successful' || '❌ Failed' }}" >> $GITHUB_STEP_SUMMARY
83+
echo "- **Node Version**: 20" >> $GITHUB_STEP_SUMMARY

README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@ To run tests:
5454
make tests
5555
```
5656

57+
### Continuous Integration
58+
59+
#### Automated Integration Testing with Meshery UI
60+
61+
Sistent includes automated integration testing in CI to ensure changes don't break downstream applications. When you create a pull request, the CI automatically:
62+
63+
1. **Builds Sistent** with your changes
64+
2. **Tests against Meshery UI** by installing your Sistent build into Meshery UI
65+
3. **Runs Meshery UI's build and tests** to verify compatibility
66+
4. **Reports results** in the PR checks
67+
68+
This ensures that your Sistent changes are validated against real-world usage in Meshery UI before merging. The workflow runs automatically on all pull requests, providing fast feedback on integration issues.
69+
5770
### Using your local Sistent Fork in a Project
5871

5972
#### Method 1: Manual Installation

0 commit comments

Comments
 (0)