Skip to content

Productize AgentParty TriParty site #1

Productize AgentParty TriParty site

Productize AgentParty TriParty site #1

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."