mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-07-21 11:21:54 +03:00
Добавлен requirements.txt (lxml/Pillow/psutil) — единый pip-манифест py-рантайма.
build-ports.yml копирует его в build только для python-сборок (в PS-порты не попадает)
+ добавлен в paths-триггер. Порт-README: блок «Требования» стал runtime-условным
(плейсхолдер {{RUNTIME_REQUIREMENTS}}) — py-вариант даёт `pip install -r requirements.txt`,
PS-вариант больше не упоминает python-deps. Заявленный минимум исправлен 3.10+ → 3.9+
(все скрипты компилируются на 3.9.6, регресс зелёный). Main README: команда установки
в py-секцию.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
242 lines
8.3 KiB
YAML
242 lines
8.3 KiB
YAML
name: Build port branches
|
||
|
||
on:
|
||
push:
|
||
branches: [main]
|
||
paths:
|
||
- '.claude/skills/**'
|
||
- 'scripts/switch.py'
|
||
- 'requirements.txt'
|
||
- '.github/templates/README.port.md.tmpl'
|
||
- '.github/templates/codex-plugin.json.tmpl'
|
||
- '.github/templates/claude-plugin.json.tmpl'
|
||
- '.github/workflows/build-ports.yml'
|
||
- 'LICENSE'
|
||
workflow_dispatch:
|
||
|
||
permissions:
|
||
contents: write
|
||
|
||
jobs:
|
||
build:
|
||
runs-on: ubuntu-latest
|
||
strategy:
|
||
fail-fast: false
|
||
matrix:
|
||
include:
|
||
- platform: claude-code
|
||
runtime: python
|
||
branch: port-claude-code-py
|
||
label: Claude Code
|
||
target_dir: .claude/skills
|
||
- platform: cursor
|
||
runtime: powershell
|
||
branch: port-cursor
|
||
label: Cursor
|
||
target_dir: .cursor/skills
|
||
- platform: cursor
|
||
runtime: python
|
||
branch: port-cursor-py
|
||
label: Cursor
|
||
target_dir: .cursor/skills
|
||
- platform: codex
|
||
runtime: powershell
|
||
branch: port-codex
|
||
label: Codex
|
||
target_dir: .codex/skills
|
||
- platform: codex
|
||
runtime: python
|
||
branch: port-codex-py
|
||
label: Codex
|
||
target_dir: .codex/skills
|
||
- platform: copilot
|
||
runtime: powershell
|
||
branch: port-copilot
|
||
label: GitHub Copilot
|
||
target_dir: .github/skills
|
||
- platform: copilot
|
||
runtime: python
|
||
branch: port-copilot-py
|
||
label: GitHub Copilot
|
||
target_dir: .github/skills
|
||
- platform: augment
|
||
runtime: powershell
|
||
branch: port-augment
|
||
label: Augment
|
||
target_dir: .augment/skills
|
||
- platform: augment
|
||
runtime: python
|
||
branch: port-augment-py
|
||
label: Augment
|
||
target_dir: .augment/skills
|
||
- platform: cline
|
||
runtime: powershell
|
||
branch: port-cline
|
||
label: Cline
|
||
target_dir: .cline/skills
|
||
- platform: cline
|
||
runtime: python
|
||
branch: port-cline-py
|
||
label: Cline
|
||
target_dir: .cline/skills
|
||
- platform: kilo
|
||
runtime: powershell
|
||
branch: port-kilo
|
||
label: Kilo Code
|
||
target_dir: .kilocode/skills
|
||
- platform: kilo
|
||
runtime: python
|
||
branch: port-kilo-py
|
||
label: Kilo Code
|
||
target_dir: .kilocode/skills
|
||
- platform: kiro
|
||
runtime: powershell
|
||
branch: port-kiro
|
||
label: Kiro
|
||
target_dir: .kiro/skills
|
||
- platform: kiro
|
||
runtime: python
|
||
branch: port-kiro-py
|
||
label: Kiro
|
||
target_dir: .kiro/skills
|
||
- platform: gemini
|
||
runtime: powershell
|
||
branch: port-gemini
|
||
label: Gemini CLI
|
||
target_dir: .gemini/skills
|
||
- platform: gemini
|
||
runtime: python
|
||
branch: port-gemini-py
|
||
label: Gemini CLI
|
||
target_dir: .gemini/skills
|
||
- platform: opencode
|
||
runtime: powershell
|
||
branch: port-opencode
|
||
label: OpenCode
|
||
target_dir: .opencode/skills
|
||
- platform: opencode
|
||
runtime: python
|
||
branch: port-opencode-py
|
||
label: OpenCode
|
||
target_dir: .opencode/skills
|
||
- platform: roo
|
||
runtime: powershell
|
||
branch: port-roo
|
||
label: Roo Code
|
||
target_dir: .roo/skills
|
||
- platform: roo
|
||
runtime: python
|
||
branch: port-roo-py
|
||
label: Roo Code
|
||
target_dir: .roo/skills
|
||
- platform: windsurf
|
||
runtime: powershell
|
||
branch: port-windsurf
|
||
label: Windsurf
|
||
target_dir: .windsurf/skills
|
||
- platform: windsurf
|
||
runtime: python
|
||
branch: port-windsurf-py
|
||
label: Windsurf
|
||
target_dir: .windsurf/skills
|
||
- platform: codeassistant
|
||
runtime: powershell
|
||
branch: port-codeassistant
|
||
label: Yandex Code Assistant
|
||
target_dir: .codeassistant/skills
|
||
- platform: codeassistant
|
||
runtime: python
|
||
branch: port-codeassistant-py
|
||
label: Yandex Code Assistant
|
||
target_dir: .codeassistant/skills
|
||
- platform: agents
|
||
runtime: powershell
|
||
branch: port-agents
|
||
label: Agent Skills
|
||
target_dir: .agents/skills
|
||
- platform: agents
|
||
runtime: python
|
||
branch: port-agents-py
|
||
label: Agent Skills
|
||
target_dir: .agents/skills
|
||
|
||
steps:
|
||
- name: Checkout main
|
||
uses: actions/checkout@v5
|
||
|
||
- name: Set up Python
|
||
uses: actions/setup-python@v6
|
||
with:
|
||
python-version: '3.11'
|
||
|
||
- name: Build skills tree for ${{ matrix.platform }} (${{ matrix.runtime }})
|
||
run: |
|
||
python scripts/switch.py "${{ matrix.platform }}" \
|
||
--project-dir build \
|
||
--runtime "${{ matrix.runtime }}"
|
||
|
||
- name: Render port README
|
||
env:
|
||
PLATFORM_LABEL: ${{ matrix.label }}
|
||
PLATFORM_DIR: ${{ matrix.target_dir }}
|
||
RUNTIME_LABEL: ${{ matrix.runtime == 'powershell' && 'PowerShell' || 'Python' }}
|
||
RUNTIME_REQUIREMENTS: ${{ matrix.runtime == 'powershell' && '- **Windows** с PowerShell 5.1+ (входит в Windows).' || '- **Python 3.9+**. Установка зависимостей: `pip install -r requirements.txt` (lxml, Pillow, psutil).' }}
|
||
COMMIT_SHA: ${{ github.sha }}
|
||
MAIN_REPO_URL: https://github.com/${{ github.repository }}
|
||
run: |
|
||
sed \
|
||
-e "s|{{PLATFORM_LABEL}}|${PLATFORM_LABEL}|g" \
|
||
-e "s|{{PLATFORM_DIR}}|${PLATFORM_DIR}|g" \
|
||
-e "s|{{RUNTIME_LABEL}}|${RUNTIME_LABEL}|g" \
|
||
-e "s|{{RUNTIME_REQUIREMENTS}}|${RUNTIME_REQUIREMENTS}|g" \
|
||
-e "s|{{COMMIT_SHA}}|${COMMIT_SHA}|g" \
|
||
-e "s|{{MAIN_REPO_URL}}|${MAIN_REPO_URL}|g" \
|
||
.github/templates/README.port.md.tmpl > build/README.md
|
||
|
||
- name: Render Codex plugin manifest
|
||
if: matrix.platform == 'codex'
|
||
env:
|
||
PLUGIN_NAME: ${{ matrix.runtime == 'python' && '1c-skills-py' || '1c-skills' }}
|
||
RUNTIME_LABEL: ${{ matrix.runtime == 'powershell' && 'PowerShell' || 'Python' }}
|
||
SHORT_DESCRIPTION: ${{ matrix.runtime == 'python' && 'Python runtime (Linux/Mac/Windows)' || 'PowerShell runtime (Windows-first)' }}
|
||
COMMIT_SHA: ${{ github.sha }}
|
||
run: |
|
||
VERSION="$(date -u +%Y.%-m.%-d)+${COMMIT_SHA::7}"
|
||
mkdir -p build/.codex-plugin
|
||
sed \
|
||
-e "s|{{PLUGIN_NAME}}|${PLUGIN_NAME}|g" \
|
||
-e "s|{{VERSION}}|${VERSION}|g" \
|
||
-e "s|{{RUNTIME_LABEL}}|${RUNTIME_LABEL}|g" \
|
||
-e "s|{{SHORT_DESCRIPTION}}|${SHORT_DESCRIPTION}|g" \
|
||
.github/templates/codex-plugin.json.tmpl > build/.codex-plugin/plugin.json
|
||
|
||
- name: Render Claude plugin manifest (Py variant)
|
||
if: matrix.platform == 'claude-code' && matrix.runtime == 'python'
|
||
env:
|
||
PLUGIN_NAME: 1c-skills-py
|
||
run: |
|
||
mkdir -p build/.claude-plugin
|
||
sed -e "s|{{PLUGIN_NAME}}|${PLUGIN_NAME}|g" \
|
||
.github/templates/claude-plugin.json.tmpl > build/.claude-plugin/plugin.json
|
||
|
||
- name: Copy LICENSE
|
||
run: cp LICENSE build/LICENSE
|
||
|
||
- name: Copy requirements.txt (Python builds only)
|
||
if: matrix.runtime == 'python'
|
||
run: cp requirements.txt build/requirements.txt
|
||
|
||
- name: Force-push orphan snapshot to ${{ matrix.branch }}
|
||
env:
|
||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||
run: |
|
||
cd build
|
||
git init -q -b master
|
||
git config user.name "github-actions[bot]"
|
||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||
git add -A
|
||
git commit -q -m "Auto-build: ${{ matrix.platform }} (${{ matrix.runtime }}) from ${GITHUB_SHA::7}"
|
||
git push --force \
|
||
"https://x-access-token:${GH_TOKEN}@github.com/${{ github.repository }}.git" \
|
||
"master:${{ matrix.branch }}"
|