Merge pull request #1 from EngineScript/dependabot/github_actions/act… #3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow runs continuous integration checks on the Simple WP Optimizer plugin. | |
| # It performs code linting for both PHP and JavaScript files and builds the plugin package. | |
| # The workflow is triggered on push to main branch and on pull requests to ensure code quality. | |
| # It creates and stores a plugin zip file as an artifact that can be used for testing. | |
| name: Continuous Integration | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| lint: | |
| name: Lint PHP and JavaScript | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.0' | |
| tools: composer:v2, phpcs | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '16' | |
| cache: 'npm' | |
| - name: Install PHP dependencies | |
| run: composer install --prefer-dist --no-progress | |
| - name: Install JS dependencies | |
| run: npm ci | |
| - name: Lint PHP | |
| run: | | |
| if [ -f .phpcs.xml ] || [ -f phpcs.xml.dist ]; then | |
| composer run lint:php | |
| else | |
| echo "No PHP linting configuration found. Skipping." | |
| fi | |
| - name: Lint JavaScript | |
| run: | | |
| if [ -f .eslintrc.js ] || [ -f .eslintrc.json ]; then | |
| npm run lint:js | |
| else | |
| echo "No JS linting configuration found. Skipping." | |
| fi | |
| build: | |
| name: Build Plugin | |
| 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: '16' | |
| cache: 'npm' | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.0' | |
| tools: composer:v2 | |
| - name: Install dependencies | |
| run: | | |
| composer install --no-dev --prefer-dist --no-progress | |
| npm ci | |
| - name: Build frontend assets | |
| run: npm run build | |
| - name: Create plugin package | |
| run: | | |
| mkdir -p build/simple-wp-optimizer | |
| cp -r assets includes languages templates simple-wp-optimizer.php readme.txt LICENSE build/simple-wp-optimizer/ | |
| cd build | |
| zip -r simple-wp-optimizer.zip simple-wp-optimizer | |
| - name: Upload build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: simple-wp-optimizer | |
| path: build/simple-wp-optimizer.zip |