Productize AgentParty TriParty site #1
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: AgentParty release gate | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| release: | |
| types: | |
| - published | |
| concurrency: | |
| group: agentparty-release-${{ github.ref }} | |
| cancel-in-progress: false | |
| jobs: | |
| release-check: | |
| name: Release check and package (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Prepare executable scripts | |
| run: chmod +x scripts/*.sh scripts/*.py adapters/http/*.py adapters/mcp/*.py | |
| - name: Run AgentParty release check | |
| run: scripts/agentparty.sh release-check --full --json > agentparty-release-check-${{ matrix.os }}.json | |
| - name: Build AgentParty release bundle | |
| run: scripts/agentparty.sh package --out dist/agentparty-release-${{ matrix.os }} --archive --force --json > agentparty-package-${{ matrix.os }}.json | |
| - name: Upload AgentParty release bundle | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: agentparty-release-${{ matrix.os }} | |
| path: | | |
| dist/agentparty-release-${{ matrix.os }} | |
| dist/agentparty-release-${{ matrix.os }}.tar.gz | |
| agentparty-release-check-${{ matrix.os }}.json | |
| agentparty-package-${{ matrix.os }}.json | |
| windows-boundary: | |
| name: Windows PowerShell read-only package and boundary | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Package is read-only on native PowerShell | |
| shell: pwsh | |
| run: | | |
| .\scripts\agentparty.ps1 package --out dist\agentparty-release-windows --archive --force --json | Out-File -Encoding utf8 agentparty-package-windows.json | |
| if (-not (Test-Path "dist\agentparty-release-windows\agentparty-package-manifest.json")) { | |
| throw "AgentParty package manifest missing on Windows" | |
| } | |
| if (-not (Test-Path "dist\agentparty-release-windows.tar.gz")) { | |
| throw "AgentParty package archive missing on Windows" | |
| } | |
| - name: Native PowerShell execution remains blocked | |
| shell: pwsh | |
| run: | | |
| $checks = @( | |
| @{ Name = "install execute"; Args = @("install", "--pack", "triparty", "--target-os", "windows_powershell", "--execute") }, | |
| @{ Name = "run"; Args = @("run", "--pack", "triparty", "--task", "ci boundary check") }, | |
| @{ Name = "deep doctor"; Args = @("doctor", "--pack", "triparty", "--deep") }, | |
| @{ Name = "evidence"; Args = @("evidence", "--pack", "claude-code-feishu-claw", "--bundle", "missing.json") }, | |
| @{ Name = "claw e2e"; Args = @("claw-e2e", "--pack", "claude-code-feishu-claw", "--task", "ci boundary check", "--out", "claw-e2e-run") } | |
| ) | |
| foreach ($check in $checks) { | |
| $argsList = [string[]]$check.Args | |
| $output = & .\scripts\agentparty.ps1 @argsList 2>&1 | |
| if ($LASTEXITCODE -eq 0) { | |
| throw "Native PowerShell $($check.Name) unexpectedly succeeded" | |
| } | |
| if (($output -join "`n") -notmatch "E_BLOCKED_OS") { | |
| throw "Native PowerShell $($check.Name) did not emit E_BLOCKED_OS" | |
| } | |
| if (($output -join "`n") -notmatch "wsl --install -d Ubuntu") { | |
| throw "Native PowerShell $($check.Name) did not point to WSL2" | |
| } | |
| } | |
| - name: Upload Windows package boundary artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: agentparty-release-windows-boundary | |
| path: | | |
| dist/agentparty-release-windows | |
| dist/agentparty-release-windows.tar.gz | |
| agentparty-package-windows.json | |
| release-gate-summary: | |
| name: Release gate summary | |
| runs-on: ubuntu-latest | |
| needs: | |
| - release-check | |
| - windows-boundary | |
| if: always() | |
| steps: | |
| - name: Verify all release jobs passed | |
| run: | | |
| if [ "${{ needs.release-check.result }}" != "success" ]; then | |
| echo "release-check job failed or was skipped: ${{ needs.release-check.result }}" >&2 | |
| exit 1 | |
| fi | |
| if [ "${{ needs.windows-boundary.result }}" != "success" ]; then | |
| echo "windows-boundary job failed or was skipped: ${{ needs.windows-boundary.result }}" >&2 | |
| exit 1 | |
| fi | |
| echo "AgentParty release gate passed for Linux/macOS packages and Windows read-only boundary." |