Skip to content

feat: Claude Marketplace Ready - Complete AI-SDLC Integration with 159 Keywords #17

feat: Claude Marketplace Ready - Complete AI-SDLC Integration with 159 Keywords

feat: Claude Marketplace Ready - Complete AI-SDLC Integration with 159 Keywords #17

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [ main, develop ]
tags:
- 'v*'
pull_request:
branches: [ main, develop ]
workflow_dispatch:
env:
PYTHON_VERSION: '3.10'
NODE_VERSION: '18'
jobs:
validate:
name: Validate Plugin Configuration
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: npm install
- name: Validate marketplace.json
run: |
cat .claude-plugin/marketplace.json | jq empty
echo "✓ marketplace.json is valid JSON"
- name: Validate plugin configurations
run: |
for plugin in plugins/*/; do
echo "Validating $plugin"
cat "$plugin/.claude-plugin/plugin.json" | jq empty
done
echo "✓ All plugin.json files are valid"
- name: Run validation script
run: npm run validate
lint:
name: Lint Code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install -r requirements-dev.txt
- name: Run pylint
run: |
pylint plugins/ tests/ examples/ --exit-zero
- name: Run black (check only)
run: |
black --check plugins/ tests/ examples/
test-unit:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run unit tests
run: |
pytest tests/unit/ -v --cov=plugins --cov-report=xml --cov-report=html
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: ./coverage.xml
flags: unittests
name: codecov-unit-tests
- name: Upload coverage HTML
uses: actions/upload-artifact@v3
with:
name: coverage-report
path: htmlcov/
test-integration:
name: Integration Tests
runs-on: ubuntu-latest
# Only run integration tests if secrets are available
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }}
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -r requirements-dev.txt
- name: Run integration tests
env:
DATABRICKS_HOST: ${{ secrets.DATABRICKS_HOST }}
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}
DATABRICKS_WAREHOUSE_ID: ${{ secrets.DATABRICKS_WAREHOUSE_ID }}
run: |
pytest tests/integration/ -v --tb=short -m "not slow"
continue-on-error: true
test-examples:
name: Test Example Projects
runs-on: ubuntu-latest
strategy:
matrix:
example:
- customer-360-pipeline
- real-time-analytics
- ml-feature-platform
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install -r requirements.txt
pip install -r examples/${{ matrix.example }}/requirements.txt
- name: Test example
run: |
cd examples/${{ matrix.example }}
pytest tests/ -v
build-docs:
name: Build Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install mkdocs mkdocs-material
- name: Build docs
run: |
mkdocs build --strict
- name: Upload docs artifact
uses: actions/upload-artifact@v3
with:
name: documentation
path: site/
publish-npm:
name: Publish to NPM
runs-on: ubuntu-latest
needs: [validate, lint, test-unit]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm install
- name: Publish to NPM
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
create-release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs: [validate, lint, test-unit]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- uses: actions/checkout@v3
- name: Extract version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v1
with:
name: Release v${{ steps.version.outputs.VERSION }}
draft: false
prerelease: false
generate_release_notes: true
files: |
.claude-plugin/marketplace.json
plugins/**/.claude-plugin/plugin.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy-docs:
name: Deploy Documentation
runs-on: ubuntu-latest
needs: build-docs
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install dependencies
run: |
pip install mkdocs mkdocs-material
- name: Deploy to GitHub Pages
run: |
mkdocs gh-deploy --force
notify:
name: Notify on Success
runs-on: ubuntu-latest
needs: [validate, lint, test-unit, test-integration, test-examples]
if: success()
steps:
- name: Notify Slack
uses: slackapi/slack-github-action@v1
with:
webhook-url: ${{ secrets.SLACK_WEBHOOK }}
payload: |
{
"text": "✅ CI/CD Pipeline completed successfully",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Databricks Platform Marketplace*\n✅ Build Successful\n*Branch:* ${{ github.ref }}\n*Commit:* ${{ github.sha }}"
}
}
]
}
continue-on-error: true