91 lines
2.7 KiB
YAML
91 lines
2.7 KiB
YAML
name: Community Sync
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
dry_run:
|
|
description: "Dry run (show what would be removed, don't push)"
|
|
required: false
|
|
default: "false"
|
|
type: boolean
|
|
release:
|
|
types: [published]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
sync:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Strip commercial content
|
|
run: bash scripts/strip-commercial.sh
|
|
|
|
- name: Verify no commercial references remain
|
|
run: |
|
|
failed=0
|
|
|
|
if [ -d "agor-pro/" ]; then
|
|
echo "::error::agor-pro/ directory still exists after strip"
|
|
failed=1
|
|
fi
|
|
|
|
content=$(find src/lib/commercial/ -type f ! -name '.gitkeep' 2>/dev/null | wc -l)
|
|
if [ "$content" -gt 0 ]; then
|
|
echo "::error::Commercial files remain in src/lib/commercial/"
|
|
failed=1
|
|
fi
|
|
|
|
if grep -r "LicenseRef-Commercial" --include="*.ts" --include="*.svelte" \
|
|
--include="*.rs" --include="*.toml" --include="*.json" \
|
|
src/ src-tauri/src/ agor-core/ 2>/dev/null; then
|
|
echo "::error::LicenseRef-Commercial references remain in source"
|
|
failed=1
|
|
fi
|
|
|
|
if [ "$failed" -eq 1 ]; then
|
|
exit 1
|
|
fi
|
|
echo "Verification passed: no commercial content remains."
|
|
|
|
- name: Show diff summary
|
|
run: |
|
|
echo "=== Files removed or modified ==="
|
|
git status --short
|
|
echo ""
|
|
echo "=== Diff stats ==="
|
|
git diff --stat
|
|
|
|
- name: Push to community repo
|
|
if: ${{ github.event.inputs.dry_run != 'true' }}
|
|
env:
|
|
COMMUNITY_PAT: ${{ secrets.COMMUNITY_PAT }}
|
|
run: |
|
|
if [ -z "$COMMUNITY_PAT" ]; then
|
|
echo "::error::COMMUNITY_PAT secret is not set"
|
|
exit 1
|
|
fi
|
|
|
|
git config user.name "community-sync[bot]"
|
|
git config user.email "community-sync[bot]@users.noreply.github.com"
|
|
|
|
git add -A
|
|
git commit -m "chore: sync community edition from commercial repo
|
|
|
|
Stripped commercial content for community release.
|
|
Source: ${{ github.sha }}"
|
|
|
|
SYNC_BRANCH="community-sync/${{ github.sha }}"
|
|
git checkout -b "$SYNC_BRANCH"
|
|
|
|
git remote add community \
|
|
"https://x-access-token:${COMMUNITY_PAT}@github.com/DexterFromLab/agent-orchestrator.git"
|
|
|
|
git push community "$SYNC_BRANCH"
|
|
|
|
echo "Pushed branch $SYNC_BRANCH to community repo."
|
|
echo "Create a PR at: https://github.com/DexterFromLab/agent-orchestrator/compare/main...$SYNC_BRANCH"
|