Skip to content

move wp version check to after npm setup steps so we know its also th… #1164

move wp version check to after npm setup steps so we know its also th…

move wp version check to after npm setup steps so we know its also th… #1164

name: Build Plugin
on:
push:
branches:
- main
- develop
- release/*
- feature/*
- add/*
- update/*
- fix/*
- try/*
- master-2.x
- develop-2.x
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true
jobs:
build:
name: On Push
runs-on: ubuntu-latest
if: ${{ github.repository == 'bluehost/bluehost-wordpress-plugin' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Validate version number
if: ${{ (github.repository == 'bluehost/bluehost-wordpress-plugin') }}
run: |
pluginHeaderVersion=`grep "Version:" bluehost-wordpress-plugin.php | grep -Eo "[0-9\.]*"`
pluginConstantVersion=`grep "'BLUEHOST_PLUGIN_VERSION'" bluehost-wordpress-plugin.php | grep -Eo "[0-9\.]*"`
pluginPackageVersion=`grep '"version"' package.json | grep -Eo "[0-9\.]*"`
echo "Plugin header version: $pluginHeaderVersion"
echo "Plugin constant version: $pluginConstantVersion"
echo "Plugin package version: $pluginPackageVersion"
[[ "$pluginPackageVersion" == "$pluginHeaderVersion" ]] || exit 1
[[ "$pluginPackageVersion" == "$pluginConstantVersion" ]] || exit 1
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
coverage: none
tools: composer, cs2pr
- name: Setup workflow context
id: workflow
working-directory: ${{ runner.temp }}
env:
REPO: ${{ github.repository }}
run: |
mkdir dist
echo "DIST=${PWD}/dist" >> $GITHUB_OUTPUT
echo "PACKAGE=${REPO##*/}" >> $GITHUB_OUTPUT
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: 'npm'
- name: Get Composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Composer vendor directory
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Show versions
run: |
php --version
composer --version
node --version
npm --version
- name: Validate composer.json and composer.lock
if: ${{ github.repository == 'bluehost/bluehost-wordpress-plugin' }}
run: composer validate
- name: Install PHP Dependencies
run: composer install --no-progress --no-dev --optimize-autoloader --prefer-dist
- name: Setup Registry
run: printf "\n//npm.pkg.github.com/:_authToken=${{ secrets.NEWFOLD_ACCESS_TOKEN }}" >> .npmrc
- name: NPM Install
run: npm install --legacy-peer-deps
- name: Build JavaScript
run: npm run build
- name: Prepare files
run: rsync -r --include-from=.distinclude --exclude-from=.distignore . ${{ steps.workflow.outputs.DIST }}
- name: List Files
working-directory: ${{ steps.workflow.outputs.DIST }}
run: find .
- uses: actions/upload-artifact@v3
with:
name: ${{ steps.workflow.outputs.PACKAGE }}
path: ${{ steps.workflow.outputs.DIST }}