chore: baseline V8.10.0-dev.1 with v8_workflows type-mapping fix and trade-pro spec

- SiteForge Enterprise V8.10.0-dev.1 upstream source (210 tests)
- Fix: v8_workflows._mapped_input now reads both 类型/分类 columns so WXR
  imports keep post/product types instead of collapsing to page
- Docs: trade-pro theme port spec (R3) and implementation plan

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-10-22 16:49:25 +08:00
commit 8cea7dee20
354 changed files with 20736 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
name: SiteForge quality gates
on:
push:
pull_request:
permissions:
contents: read
jobs:
tests:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
python: ['3.12', '3.13']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
cache: pip
- name: Install locked dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r requirements-dev.lock
python -m pip check
- name: Validate Python and tests
env:
SITEFORGE_ADMIN_PASSWORD: administrator-strong-password-for-ci
SITEFORGE_SESSION_SECRET: ci-only-session-key-not-for-production-with-entropy
run: |
bash scripts/check.sh
container:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Validate Compose
env:
SITEFORGE_ADMIN_PASSWORD: ci-test-only-not-production
SITEFORGE_SESSION_SECRET: ci-test-only-session-key-not-for-production-123456
SITEFORGE_PG_PASSWORD: ci-postgresql-password
SITEFORGE_DEPLOY_SECRET: ci-release-secret-should-not-be-used-in-production
run: |
docker compose config --quiet
docker compose -f compose.enterprise.yaml config --quiet
docker compose -f compose.release-agent.yaml config --quiet
- name: One-command Compose build and start smoke
env:
SITEFORGE_ADMIN_PASSWORD: ci-test-only-not-production
SITEFORGE_SESSION_SECRET: ci-test-only-session-key-not-for-production-123456
run: |
docker compose up -d --build
for n in $(seq 1 45); do
web=$(docker inspect --format='{{.State.Health.Status}}' "$(docker compose ps -q siteforge)" 2>/dev/null || true)
worker=$(docker inspect --format='{{.State.Health.Status}}' "$(docker compose ps -q worker)" 2>/dev/null || true)
if [ "$web" = healthy ] && [ "$worker" = healthy ]; then break; fi
sleep 2
done
test "$web" = healthy && test "$worker" = healthy
docker compose exec -T siteforge python -c "import json,urllib.request; data=json.load(urllib.request.urlopen('http://127.0.0.1:8787/api/health')); assert data['version']=='8.10.0-dev.1' and data.get('commit')"
- name: Stop Compose smoke
if: always()
env:
SITEFORGE_ADMIN_PASSWORD: ci-test-only-not-production
SITEFORGE_SESSION_SECRET: ci-test-only-session-key-not-for-production-123456
run: docker compose down -v --remove-orphans
postgres-smoke:
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:16.9-alpine
env:
POSTGRES_USER: siteforge
POSTGRES_PASSWORD: postgres-ci-only
POSTGRES_DB: siteforge_ci
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U siteforge -d siteforge_ci"
--health-interval 10s --health-timeout 5s --health-retries 5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install pinned dependencies and PG driver
run: pip install -r requirements.lock -r requirements-enterprise.txt
- name: Bootstrap PG and verify transactional queue
env:
SITEFORGE_DATABASE_URL: postgresql://siteforge:postgres-ci-only@127.0.0.1:5432/siteforge_ci
run: python scripts/verify_pg_bootstrap.py