Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 36 additions & 29 deletions .github/workflows/android-cpp-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -223,34 +223,41 @@ jobs:
android-cpp/QuickStartTasksCPP/app/build/outputs/apk/
android-cpp/QuickStartTasksCPP/appium-test/build/reports/

- name: Comment PR with results
if: github.event_name == 'pull_request' && always()
uses: actions/github-script@v7
with:
script: |
const testDocId = '${{ steps.seed_doc.outputs.doc_title }}';
const status = '${{ job.status }}';
const runUrl = '${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}';
summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, browserstack-appium-test]
if: always()

const body = `## 📱 BrowserStack Test Results (Android C++)
steps:
- name: Report Results
run: |
echo "## 📱 Android C++ CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

**Status:** ${status === 'success' ? '✅ Passed' : '❌ Failed'}
**Build:** [#${{ github.run_number }}](${runUrl})
**Test Document ID:** ${testDocId || 'Not generated'}

### Tested Devices:
- Google Pixel 7 (Android 13.0)

### Test Verification:
- ✅ Lint check completed
- ✅ APK build successful
- ✅ Test document seeded to Ditto Cloud
- ${status === 'success' ? '✅' : '❌'} Integration test verification on BrowserStack
`;

github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body
});
# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.browserstack-appium-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| BrowserStack Tests | ${{ needs.browserstack-appium-test.result == 'success' && '✅ Passed' || (needs.browserstack-appium-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# BrowserStack link
if [[ "${{ needs.browserstack-appium-test.result }}" != "skipped" ]]; then
echo "### BrowserStack Session" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "🤖 [View Test Results](https://app-automate.browserstack.com/dashboard/v2)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Tested Device:**" >> $GITHUB_STEP_SUMMARY
echo "- Google Pixel 7 (Android 13.0)" >> $GITHUB_STEP_SUMMARY
fi
76 changes: 41 additions & 35 deletions .github/workflows/android-java-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -343,38 +343,44 @@ jobs:
android-java/app/build/outputs/apk/
android-java/app/build/reports/

- name: Comment PR with results
if: github.event_name == 'pull_request' && always()
uses: actions/github-script@v7
with:
script: |
const testDocId = 'Generated during BrowserStack testing';
const status = '${{ job.status }}';
const runUrl = '${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}';

const body = `## 📱 BrowserStack Test Results (Android Java)

**Status:** ${status === 'success' ? '✅ Passed' : '❌ Failed'}
**Build:** [#${{ github.run_number }}](${runUrl})
**Test Document ID:** ${testDocId || 'Not generated'}

### Tested Devices:
- Google Pixel 8 (Android 14)
- Samsung Galaxy S23 (Android 13)
- Google Pixel 6 (Android 12)
- OnePlus 9 (Android 11)

### Test Verification:
- ✅ Lint check completed
- ✅ APK build successful
- ✅ Unit tests passed
- ✅ Test document seeded to Ditto Cloud
- ${status === 'success' ? '✅' : '❌'} Integration test verification on BrowserStack
`;

github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: body
});
summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, browserstack-test]
if: always()

steps:
- name: Report Results
run: |
echo "## 📱 Android Java CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.browserstack-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| BrowserStack Tests | ${{ needs.browserstack-test.result == 'success' && '✅ Passed' || (needs.browserstack-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# BrowserStack link
if [[ "${{ needs.browserstack-test.result }}" != "skipped" ]]; then
echo "### BrowserStack Session" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "🤖 [View Test Results](https://app-automate.browserstack.com/builds?project=Ditto+Android+Java&build=Build+%23${{ github.run_number }})" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Tested Devices:**" >> $GITHUB_STEP_SUMMARY
echo "- Google Pixel 8 (Android 14)" >> $GITHUB_STEP_SUMMARY
echo "- Samsung Galaxy S23 (Android 13)" >> $GITHUB_STEP_SUMMARY
echo "- Google Pixel 6 (Android 12)" >> $GITHUB_STEP_SUMMARY
echo "- OnePlus 9 (Android 11)" >> $GITHUB_STEP_SUMMARY
fi
42 changes: 42 additions & 0 deletions .github/workflows/android-kotlin-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -349,3 +349,45 @@ jobs:
echo "Warning: Could not parse final results"
echo "Raw response: $FINAL_RESULT"
fi

summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build-and-test, browserstack-test]
if: always()

steps:
- name: Report Results
run: |
echo "## 📱 Android Kotlin CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build-and-test.result }}" == "success" && \
"${{ needs.browserstack-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build and Test | ${{ needs.build-and-test.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| BrowserStack Tests | ${{ needs.browserstack-test.result == 'success' && '✅ Passed' || (needs.browserstack-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# BrowserStack link
if [[ "${{ needs.browserstack-test.result }}" != "skipped" ]]; then
echo "### BrowserStack Session" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "🤖 [View Test Results](https://app-automate.browserstack.com/builds?project=Ditto+Android+Kotlin&build=Build+%23${{ github.run_number }})" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Tested Devices:**" >> $GITHUB_STEP_SUMMARY
echo "- Google Pixel 8 (Android 14)" >> $GITHUB_STEP_SUMMARY
echo "- Samsung Galaxy S23 (Android 13)" >> $GITHUB_STEP_SUMMARY
echo "- Google Pixel 6 (Android 12)" >> $GITHUB_STEP_SUMMARY
echo "- OnePlus 9 (Android 11)" >> $GITHUB_STEP_SUMMARY
fi
30 changes: 29 additions & 1 deletion .github/workflows/cpp-tui-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,4 +145,32 @@ jobs:
src/task.cpp src/tasks_peer.cpp src/tasks_log.cpp \
-L./sdk -lditto -ldl -lrt -pthread \
-o build/integration_test
./build/integration_test
./build/integration_test

summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, integration-test]
if: always()

steps:
- name: Report Results
run: |
echo "## 🔧 C++ TUI CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.integration-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Integration Test | ${{ needs.integration-test.result == 'success' && '✅ Passed' || (needs.integration-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
30 changes: 29 additions & 1 deletion .github/workflows/dotnet-tui-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,32 @@ jobs:
TASK_TO_FIND: ${{ env.GITHUB_TEST_DOC_TITLE }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
run: dotnet test DittoDotNetTasksConsole.Tests --configuration Release --logger "console;verbosity=detailed"
run: dotnet test DittoDotNetTasksConsole.Tests --configuration Release --logger "console;verbosity=detailed"

summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, integration-test]
if: always()

steps:
- name: Report Results
run: |
echo "## 🔷 .NET TUI CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.integration-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Integration Test | ${{ needs.integration-test.result == 'success' && '✅ Passed' || (needs.integration-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
30 changes: 29 additions & 1 deletion .github/workflows/dotnet-winforms-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,4 +147,32 @@ jobs:
run: |
dotnet restore
dotnet build --configuration Release --no-restore
dotnet run --configuration Release --no-build
dotnet run --configuration Release --no-build

summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, integration-test]
if: always()

steps:
- name: Report Results
run: |
echo "## 🪟 .NET WinForms CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.integration-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Integration Test | ${{ needs.integration-test.result == 'success' && '✅ Passed' || (needs.integration-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
39 changes: 39 additions & 0 deletions .github/workflows/java-spring-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -308,3 +308,42 @@ jobs:
java-spring/app.log
browserstack-local.log
retention-days: 1

summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, browserstack-test]
if: always()

steps:
- name: Report Results
run: |
echo "## ☕ Java Spring CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.browserstack-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| BrowserStack Tests | ${{ needs.browserstack-test.result == 'success' && '✅ Passed' || (needs.browserstack-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# BrowserStack link
if [[ "${{ needs.browserstack-test.result }}" != "skipped" ]]; then
echo "### BrowserStack Session" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "🔗 [View Test Results](https://automate.browserstack.com/dashboard/v2/builds)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "**Tested Browser:**" >> $GITHUB_STEP_SUMMARY
echo "- Chrome Latest (Windows 11)" >> $GITHUB_STEP_SUMMARY
fi
30 changes: 29 additions & 1 deletion .github/workflows/javascript-tui-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,4 +143,32 @@ jobs:
GITHUB_TEST_DOC_TITLE: ${{ env.GITHUB_TEST_DOC_TITLE }}
GITHUB_RUN_ID: ${{ github.run_id }}
GITHUB_RUN_NUMBER: ${{ github.run_number }}
run: npm run build && node tests/integration_test.js
run: npm run build && node tests/integration_test.js

summary:
name: CI Report
runs-on: ubuntu-latest
needs: [lint, build, integration-test]
if: always()

steps:
- name: Report Results
run: |
echo "## 📜 JavaScript TUI CI" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY

# Overall status
if [[ "${{ needs.lint.result }}" == "success" && \
"${{ needs.build.result }}" == "success" && \
"${{ needs.integration-test.result }}" == "success" ]]; then
echo "**Overall Status:** ✅ All checks passed" >> $GITHUB_STEP_SUMMARY
else
echo "**Overall Status:** ❌ Failed" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY

echo "| Job | Status |" >> $GITHUB_STEP_SUMMARY
echo "|-----|--------|" >> $GITHUB_STEP_SUMMARY
echo "| Lint | ${{ needs.lint.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Build | ${{ needs.build.result == 'success' && '✅ Passed' || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
echo "| Integration Test | ${{ needs.integration-test.result == 'success' && '✅ Passed' || (needs.integration-test.result == 'skipped' && '⏭️ Skipped') || '❌ Failed' }} |" >> $GITHUB_STEP_SUMMARY
Loading
Loading