Some checks failed
CI/CD Pipeline / Test & Lint (16.x) (push) Has been cancelled
CI/CD Pipeline / Test & Lint (18.x) (push) Has been cancelled
CI/CD Pipeline / Test & Lint (20.x) (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Release (push) Has been cancelled
Demo Deployment / Build Demo (push) Has been cancelled
Demo Deployment / Test Demo (push) Has been cancelled
Demo Deployment / Performance Audit (push) Has been cancelled
Demo Deployment / Deploy to Staging (push) Has been cancelled
Demo Deployment / Deploy to Production (push) Has been cancelled
Animation Processing Pipeline / Validate Animation Names (push) Has been cancelled
Animation Processing Pipeline / Process Blender Animation Assets (push) Has been cancelled
Multi-Scheme Testing / Validate Naming Schemes (artist) (push) Has been cancelled
Multi-Scheme Testing / Validate Naming Schemes (hierarchical) (push) Has been cancelled
Multi-Scheme Testing / Validate Naming Schemes (legacy) (push) Has been cancelled
Multi-Scheme Testing / Validate Naming Schemes (semantic) (push) Has been cancelled
Multi-Scheme Testing / Test Scheme Conversions (push) Has been cancelled
Multi-Scheme Testing / Validate Demo Functionality (push) Has been cancelled
Multi-Scheme Testing / Performance Benchmarks (push) Has been cancelled
Performance Testing / Animation Conversion Performance (100, artist) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (100, hierarchical) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (100, legacy) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (100, semantic) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (1000, artist) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (1000, hierarchical) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (1000, legacy) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (1000, semantic) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (5000, artist) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (5000, hierarchical) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (5000, legacy) (push) Has been cancelled
Performance Testing / Animation Conversion Performance (5000, semantic) (push) Has been cancelled
Performance Testing / Memory Usage Analysis (push) Has been cancelled
Performance Testing / Demo Performance Audit (push) Has been cancelled
Animation Processing Pipeline / Update Animation Documentation (push) Has been cancelled
Animation Processing Pipeline / Deploy Animation Demo (push) Has been cancelled
Performance Testing / Generate Performance Report (push) Has been cancelled
- Added AnimationNameMapper class to handle conversion between different animation naming schemes (legacy, artist, hierarchical, semantic). - Included methods for initialization, pattern matching, conversion, and validation of animation names. - Developed comprehensive unit tests for the animation name converter and demo pages using Playwright. - Created a Vite configuration for the demo application, including asset handling and optimization settings. - Enhanced the demo with features for batch conversion, performance metrics, and responsive design.
247 lines
6.3 KiB
YAML
247 lines
6.3 KiB
YAML
name: Demo Deployment
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, master ]
|
|
paths:
|
|
- 'demo/**'
|
|
- 'src/**'
|
|
- 'vite.demo.config.js'
|
|
- 'package.json'
|
|
pull_request:
|
|
branches: [ main, master ]
|
|
paths:
|
|
- 'demo/**'
|
|
- 'src/**'
|
|
- 'vite.demo.config.js'
|
|
workflow_dispatch:
|
|
inputs:
|
|
environment:
|
|
description: 'Deployment environment'
|
|
required: true
|
|
default: 'staging'
|
|
type: choice
|
|
options:
|
|
- staging
|
|
- production
|
|
|
|
env:
|
|
NODE_VERSION: '20.x'
|
|
|
|
jobs:
|
|
build-demo:
|
|
name: Build Demo
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Generate animation constants
|
|
run: npm run generate:constants
|
|
|
|
- name: Build demo application
|
|
run: npm run build:demo
|
|
env:
|
|
NODE_ENV: production
|
|
|
|
- name: Validate demo build
|
|
run: |
|
|
test -d dist/demo || (echo "Demo build failed - dist/demo directory not found" && exit 1)
|
|
test -f dist/demo/index.html || (echo "Demo build failed - index.html not found" && exit 1)
|
|
test -f dist/demo/examples.html || (echo "Demo build failed - examples.html not found" && exit 1)
|
|
test -f dist/demo/comparison.html || (echo "Demo build failed - comparison.html not found" && exit 1)
|
|
test -f dist/demo/interactive.html || (echo "Demo build failed - interactive.html not found" && exit 1)
|
|
|
|
- name: Upload demo artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: demo-build
|
|
path: dist/demo/
|
|
retention-days: 30
|
|
|
|
- name: Upload build reports
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: build-reports
|
|
path: |
|
|
dist/demo/report.html
|
|
dist/demo/stats.json
|
|
retention-days: 7
|
|
|
|
test-demo:
|
|
name: Test Demo
|
|
runs-on: ubuntu-latest
|
|
needs: build-demo
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Download demo build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: demo-build
|
|
path: dist/demo/
|
|
|
|
- name: Install Playwright
|
|
run: npx playwright install --with-deps
|
|
|
|
- name: Run demo tests
|
|
run: npm run test:demo
|
|
env:
|
|
CI: true
|
|
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/ms-playwright
|
|
|
|
- name: Upload test results
|
|
uses: actions/upload-artifact@v4
|
|
if: always()
|
|
with:
|
|
name: playwright-report
|
|
path: playwright-report/
|
|
retention-days: 7
|
|
|
|
- name: Upload test screenshots
|
|
uses: actions/upload-artifact@v4
|
|
if: failure()
|
|
with:
|
|
name: test-screenshots
|
|
path: test-results/
|
|
retention-days: 7
|
|
|
|
lighthouse-audit:
|
|
name: Performance Audit
|
|
runs-on: ubuntu-latest
|
|
needs: build-demo
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{ env.NODE_VERSION }}
|
|
cache: 'npm'
|
|
|
|
- name: Install dependencies
|
|
run: npm ci
|
|
|
|
- name: Download demo build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: demo-build
|
|
path: dist/demo/
|
|
|
|
- name: Install Lighthouse
|
|
run: npm install -g @lhci/cli lighthouse
|
|
|
|
- name: Start demo server
|
|
run: |
|
|
npx vite preview --config vite.demo.config.js --port 3000 &
|
|
sleep 10
|
|
env:
|
|
NODE_ENV: production
|
|
|
|
- name: Run Lighthouse audit
|
|
run: |
|
|
lhci autorun
|
|
env:
|
|
LHCI_GITHUB_APP_TOKEN: ${{ secrets.LHCI_GITHUB_APP_TOKEN }}
|
|
|
|
- name: Upload Lighthouse results
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: lighthouse-reports
|
|
path: .lighthouseci/
|
|
retention-days: 7
|
|
|
|
deploy-staging:
|
|
name: Deploy to Staging
|
|
runs-on: ubuntu-latest
|
|
needs: [build-demo, test-demo]
|
|
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || github.event.inputs.environment == 'staging'
|
|
environment: staging
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download demo build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: demo-build
|
|
path: dist/demo/
|
|
|
|
- name: Deploy to staging
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: ./dist/demo
|
|
publish_branch: gh-pages-staging
|
|
force_orphan: true
|
|
|
|
- name: Update deployment status
|
|
run: |
|
|
echo "Demo deployed to staging: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/staging/"
|
|
|
|
deploy-production:
|
|
name: Deploy to Production
|
|
runs-on: ubuntu-latest
|
|
needs: [build-demo, test-demo, lighthouse-audit]
|
|
if: github.ref == 'refs/heads/main' && github.event.inputs.environment == 'production'
|
|
environment: production
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Download demo build
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: demo-build
|
|
path: dist/demo/
|
|
|
|
- name: Deploy to production
|
|
uses: peaceiris/actions-gh-pages@v3
|
|
with:
|
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
|
publish_dir: ./dist/demo
|
|
publish_branch: gh-pages
|
|
force_orphan: true
|
|
|
|
- name: Update deployment status
|
|
run: |
|
|
echo "Demo deployed to production: https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/"
|
|
|
|
- name: Create deployment notification
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
github.rest.repos.createDeploymentStatus({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
deployment_id: context.payload.deployment.id,
|
|
state: 'success',
|
|
environment_url: 'https://${{ github.repository_owner }}.github.io/${{ github.event.repository.name }}/',
|
|
description: 'Demo successfully deployed'
|
|
});
|