Skip to content

New scripts and updates to instructions to remove references and dele… #35

New scripts and updates to instructions to remove references and dele…

New scripts and updates to instructions to remove references and dele… #35

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
release:
types: [ published ]
env:
NODE_VERSION: 18
PHP_VERSION: 8.1
jobs:
lint:
name: Code Quality & Linting
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHP_VERSION }}
tools: composer
coverage: none
- name: Install Node dependencies
run: npm ci
- name: Install Composer dependencies
run: composer install --prefer-dist --no-progress --no-suggest
- name: Lint JavaScript
run: npm run lint:js
- name: Lint CSS
run: npm run lint:css
- name: Lint PHP
run: npm run lint:php
test:
name: Run Tests
runs-on: ubuntu-latest
strategy:
matrix:
php-version: [8.0, 8.1, 8.2]
wp-version: [latest, 6.4, 6.5]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
tools: composer
coverage: xdebug
- name: Install Node dependencies
run: npm ci
- name: Install Composer dependencies
run: composer install --prefer-dist --no-progress --no-suggest
- name: Build assets
run: npm run build
- name: Run JavaScript tests
run: npm run test:js
- name: Run PHP tests
run: npm run test:php
build:
name: Build & Package
runs-on: ubuntu-latest
needs: [lint, test]
if: github.event_name == 'release'
steps:
- name: Checkout code
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: Build production assets
run: npm run build:production
- name: Create distribution package
run: |
mkdir -p dist
rsync -av --exclude-from=.distignore . dist/{{theme_slug}}/
cd dist
zip -r {{theme_slug}}-${{ github.event.release.tag_name }}.zip {{theme_slug}}/
- name: Upload release asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

Check failure on line 126 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci.yml

Invalid workflow file

You have an error in your yaml syntax on line 126
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./dist/{{theme_slug}}-${{ github.event.release.tag_name }}.zip
asset_name: {{theme_slug}}-${{ github.event.release.tag_name }}.zip
asset_content_type: application/zip
name: build-files
path: build/
security-audit:
name: Security Audit
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run npm audit
run: |
echo "🔒 Running security audit..."
npm audit --audit-level=moderate --production || {
echo "❌ Security vulnerabilities detected."
echo "Run 'npm audit' locally for details."
exit 1
}
- name: Check for outdated dependencies
run: |
echo "📦 Checking for outdated dependencies..."
npm outdated || true
e2e:
name: End-to-End Tests
runs-on: ubuntu-latest
needs: [lint]
steps:
- name: Checkout code
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: Build assets
run: npm run build
- name: Start WordPress environment
run: npm run env:start
- name: Run E2E tests
run: npm run test:e2e
- name: Stop WordPress environment
if: always()
run: npm run env:stop
accessibility:
name: Accessibility Tests
runs-on: ubuntu-latest
needs: [lint, security-audit]
steps:
- name: Checkout code
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: Build assets
run: npm run build
- name: Start WordPress environment
run: npm run env:start
- name: Run accessibility tests
run: npm run test:accessibility
- name: Stop WordPress environment
if: always()
run: npm run env:stop