Files
metabuilder/packages/package_validator/examples/github-actions.yml
JohnDoe6345789 459182b655 feat: Add comprehensive validation for package structure, metadata, and components
- Implemented component schema validation in `component_schema.lua`.
- Created metadata schema validation in `metadata_schema.lua`.
- Developed structure validation logic in `structure_validator.lua`.
- Introduced Lua file validation functions in `lua_validator.lua`.
- Added integration tests for validation logic in `validate.test.lua`.
- Created unit tests for component, metadata, and structure validation.
- Added SVG icon for package representation.
- Established a main validation orchestrator in `validate.lua` to coordinate the validation process.
2025-12-30 02:19:28 +00:00

76 lines
2.0 KiB
YAML

# GitHub Actions workflow for validating packages
# Place this in .github/workflows/validate-packages.yml
name: Validate Packages
on:
push:
branches: [ main, develop ]
paths:
- 'packages/**'
pull_request:
branches: [ main, develop ]
paths:
- 'packages/**'
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Lua
uses: leafo/gh-actions-lua@v10
with:
luaVersion: "5.4"
- name: Get modified packages
id: changed-packages
run: |
if [ "${{ github.event_name }}" == "pull_request" ]; then
PACKAGES=$(git diff --name-only origin/${{ github.base_ref }}...HEAD | grep '^packages/' | cut -d'/' -f2 | sort -u)
else
PACKAGES=$(git diff --name-only HEAD~1 | grep '^packages/' | cut -d'/' -f2 | sort -u)
fi
echo "packages=$PACKAGES" >> $GITHUB_OUTPUT
echo "Modified packages: $PACKAGES"
- name: Validate packages
run: |
FAILED=0
PACKAGES="${{ steps.changed-packages.outputs.packages }}"
if [ -z "$PACKAGES" ]; then
echo "No packages modified"
exit 0
fi
for PACKAGE in $PACKAGES; do
echo "::group::Validating $PACKAGE"
if lua packages/package_validator/seed/scripts/cli.lua "$PACKAGE" --verbose; then
echo "✅ $PACKAGE passed validation"
else
echo "❌ $PACKAGE failed validation"
FAILED=1
fi
echo "::endgroup::"
done
exit $FAILED
- name: Comment on PR (if failed)
if: failure() && github.event_name == 'pull_request'
uses: actions/github-script@v6
with:
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '❌ Package validation failed. Please check the action logs for details.'
})