Skip to content

Bump Ditto dependency to 4.12.3 #129

Bump Ditto dependency to 4.12.3

Bump Ditto dependency to 4.12.3 #129

name: .NET WinForms CI
on:
push:
branches: [main]
paths:
- 'dotnet-winforms/**'
pull_request:
branches: [main]
paths:
- 'dotnet-winforms/**'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: windows-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
- name: Install dotnet-format
run: dotnet tool install -g dotnet-format
- name: Run dotnet-format check
working-directory: dotnet-winforms/TasksApp
run: |
dotnet format DittoTasksApp.sln --verify-no-changes --verbosity diagnostic
if ($LASTEXITCODE -ne 0) {
Write-Host "❌ Code formatting issues found. Run 'dotnet format' to fix."
exit 1
}
build:
name: Build
runs-on: windows-latest
needs: lint
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
- name: Create .env file
run: |
echo "DITTO_APP_ID=${{ secrets.DITTO_APP_ID }}" > .env
echo "DITTO_PLAYGROUND_TOKEN=${{ secrets.DITTO_PLAYGROUND_TOKEN }}" >> .env
echo "DITTO_AUTH_URL=${{ secrets.DITTO_AUTH_URL }}" >> .env
echo "DITTO_WEBSOCKET_URL=${{ secrets.DITTO_WEBSOCKET_URL }}" >> .env
- name: Restore dependencies
working-directory: dotnet-winforms/TasksApp
run: dotnet restore
- name: Build application
working-directory: dotnet-winforms/TasksApp
run: dotnet build --configuration Release --no-restore
integration-test:
name: Integration Test
runs-on: windows-latest
needs: [lint, build]
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '9.0.x'
- name: Create .env file
run: |
echo "DITTO_APP_ID=${{ secrets.DITTO_APP_ID }}" > .env
echo "DITTO_PLAYGROUND_TOKEN=${{ secrets.DITTO_PLAYGROUND_TOKEN }}" >> .env
echo "DITTO_AUTH_URL=${{ secrets.DITTO_AUTH_URL }}" >> .env
echo "DITTO_WEBSOCKET_URL=${{ secrets.DITTO_WEBSOCKET_URL }}" >> .env
- name: Seed test document to Ditto Cloud
id: seed
uses: ./.github/actions/seed-ditto-document
with:
ditto-api-key: ${{ secrets.DITTO_API_KEY }}
ditto-api-url: ${{ secrets.DITTO_API_URL }}
app-name: 'dotnet-winforms'
- name: Build and run integration test
working-directory: dotnet-winforms/IntegrationTest
env:
GITHUB_TEST_DOC_TITLE: ${{ steps.seed.outputs.document-title }}
run: |
dotnet restore
dotnet build --configuration Release --no-restore
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