Merge pull request #9 from DelgadoLogic/dependabot/nuget/src/LogicFlo… #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: LogicFlow CI | |
| on: | |
| push: | |
| branches: [main, develop] | |
| tags: ['v*.*.*'] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| # ── Build & Analyze ────────────────────────────────────────────────────────── | |
| build: | |
| name: Build & Analyze | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v5 | |
| with: | |
| dotnet-version: '8.x' | |
| - name: Restore dependencies | |
| run: dotnet restore LogicFlow.sln | |
| - name: Build (Release) | |
| run: dotnet build LogicFlow.sln --configuration Release --no-restore | |
| - name: Run tests | |
| run: dotnet test LogicFlow.sln --configuration Release --no-build --verbosity normal | |
| continue-on-error: true | |
| - name: Publish Dashboard | |
| run: | | |
| dotnet publish src/LogicFlow.Dashboard/LogicFlow.Dashboard.csproj ` | |
| --configuration Release ` | |
| --output ./publish/dashboard ` | |
| --self-contained false | |
| shell: pwsh | |
| # ── Release: Publish manifest to sovereign update server ──────────────────── | |
| release: | |
| name: Publish Sovereign Manifest | |
| needs: build | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Extract version | |
| id: version | |
| run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT | |
| - name: Publish update manifest to sovereign server | |
| env: | |
| CI_TOKEN: ${{ secrets.AEON_CI_PUBLISH_SECRET }} | |
| UPDATE_SERVER: ${{ secrets.AEON_UPDATE_SERVER_URL }} | |
| VERSION: ${{ steps.version.outputs.VERSION }} | |
| run: | | |
| curl -sf -X POST "$UPDATE_SERVER/v1/manifest/publish" \ | |
| -H "Authorization: Bearer $CI_TOKEN" \ | |
| -H "Content-Type: application/json" \ | |
| -d "{ | |
| \"product\": \"logicflow\", | |
| \"channel\": \"stable\", | |
| \"version\": \"$VERSION\", | |
| \"tag\": \"v$VERSION\", | |
| \"release_url\": \"https://github.com/DelgadoLogic/logicflow-core/releases/tag/v$VERSION\", | |
| \"min_os\": \"windows-xp\", | |
| \"status\": \"available\" | |
| }" | |
| echo "Manifest published for LogicFlow v$VERSION" | |
| - name: Verify manifest is live + signed | |
| env: | |
| UPDATE_SERVER: ${{ secrets.AEON_UPDATE_SERVER_URL }} | |
| run: | | |
| echo "Verifying sovereign manifest..." | |
| curl -sf "$UPDATE_SERVER/v1/update/logicflow/stable" | python3 -c " | |
| import sys, json | |
| data = json.load(sys.stdin) | |
| print('Version:', data['manifest']['version']) | |
| print('Signature:', data['signature'][:32], '...') | |
| print('✅ Manifest is live and signed') | |
| " |