Skip to content

chore: release 0.5.0 #4

chore: release 0.5.0

chore: release 0.5.0 #4

Workflow file for this run

name: Static Validation
on:
pull_request:
branches: [ main ]
push:
branches: [ main ]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pyyaml
- name: Validate JSON and YAML files
run: |
python -c "
import yaml
import sys
# Validate plugin.json can be read
try:
with open('.claude-plugin/plugin.json') as f:
import json
json.load(f)
print('✓ plugin.json is valid')
except Exception as e:
print(f'✗ plugin.json validation failed: {e}')
sys.exit(1)
# Validate marketplace.json can be read
try:
with open('.claude-plugin/marketplace.json') as f:
import json
json.load(f)
print('✓ marketplace.json is valid')
except Exception as e:
print(f'✗ marketplace.json validation failed: {e}')
sys.exit(1)
# Validate config.example.yaml
try:
with open('config/config.example.yaml') as f:
yaml.safe_load(f)
print('✓ config.example.yaml is valid')
except Exception as e:
print(f'✗ config.example.yaml validation failed: {e}')
sys.exit(1)
"
- name: Check version consistency
run: |
python -c "
import json
import sys
# Read plugin.json version
with open('.claude-plugin/plugin.json') as f:
plugin_version = json.load(f)['version']
# Read marketplace.json version
with open('.claude-plugin/marketplace.json') as f:
marketplace_version = json.load(f)['plugins'][0]['version']
print(f'plugin.json version: {plugin_version}')
print(f'marketplace.json version: {marketplace_version}')
if plugin_version != marketplace_version:
print('✗ ERROR: Version mismatch!')
print(f' plugin.json: {plugin_version}')
print(f' marketplace.json: {marketplace_version}')
print('')
print('Fix by updating both files to the same version.')
sys.exit(1)
print('✓ Versions match')
"
- name: Check SKILL.md structure
run: |
python -c "
import os
import sys
skill_dirs = [d for d in os.listdir('skills') if os.path.isdir(f'skills/{d}')]
missing_skill_md = []
for skill_dir in skill_dirs:
skill_md_path = f'skills/{skill_dir}/SKILL.md'
if not os.path.exists(skill_md_path):
missing_skill_md.append(skill_md_path)
if missing_skill_md:
print('✗ Missing SKILL.md files:')
for path in missing_skill_md:
print(f' - {path}')
sys.exit(1)
print(f'✓ All {len(skill_dirs)} skills have SKILL.md')
"
- name: Validation summary
run: |
echo "================================"
echo "All static validation passed!"
echo ""
echo "Note: Run /bitwize-music:test locally before submitting PR"
echo "================================"