Skip to content

Fix: Add proper permissions to GitHub Actions workflow and correct co… #3

Fix: Add proper permissions to GitHub Actions workflow and correct co…

Fix: Add proper permissions to GitHub Actions workflow and correct co… #3

Workflow file for this run

name: CI/CD Pipeline
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
release:
types: [ published ]
permissions:
contents: read
jobs:
lint-and-test:
name: Lint and Test
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
node-version: [18.x, 20.x]
php-version: [8.0, 8.1, 8.2]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Setup PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
extensions: mysql, zip
tools: composer
- name: Install Node.js dependencies
run: npm ci
- name: Install Composer dependencies
run: composer install --prefer-dist --no-progress --no-interaction
- name: Lint JavaScript
run: npm run lint:js
- name: Lint CSS
run: npm run lint:css
- name: Lint PHP
run: composer run lint
- name: Run JavaScript tests
run: npm run test:unit
- name: Run PHP tests
run: composer run test
- name: Build plugin
run: npm run build
- name: Archive build artifacts
if: matrix.node-version == '20.x' && matrix.php-version == '8.1'
uses: actions/upload-artifact@v4
with:
name: build-files
path: build/
e2e-tests:
name: E2E Tests
runs-on: ubuntu-latest
needs: lint-and-test
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Install Playwright browsers
run: npx playwright install --with-deps
- name: Build plugin
run: npm run build
- name: Start WordPress environment
run: npm run env:start
- name: Run E2E tests
run: npm run test:e2e
- name: Upload E2E test results
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e-test-results
path: test-results/
deploy:
name: Deploy Release
runs-on: ubuntu-latest
needs: [lint-and-test, e2e-tests]
if: github.event_name == 'release'
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
tools: composer
- name: Install dependencies
run: |
npm ci
composer install --no-dev --optimize-autoloader
- name: Build plugin
run: npm run build
- name: Create plugin ZIP
run: npm run plugin-zip
- name: Upload ZIP to release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

Check failure on line 152 in .github/workflows/ci-cd.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/ci-cd.yml

Invalid workflow file

You have an error in your yaml syntax on line 152
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./{{slug}}.zip
asset_name: {{slug}}.zip
asset_content_type: application/zip