GitHub Action
Plugin Machine WordPress Plugin Builder
This is a Github action for WordPress plugins. This action will install the plugin's dependencies with npm and/ or composer if needed. It will then create a ZIP file of the neccasary files, while skipping development files such as tests or configuration files not needed in production. Optionally, it will add a comment to the PR, with a link to download the zip.
This action requires an active Plugin Machine account. Sign up for a 14 Day Free Trial.
First, you will need to copy your Plugin Machine token from the API tokens page. Then create an encrypted secret in your Github repo called "PLUGIN_MACHINE_TOKEN", using the value you copied from the app.
name: Build and ZIP
on:
pull_request:
types: [opened, synchronize]
jobs:
make_zip:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
#Use Node 16
- uses: actions/setup-node@v3
with:
node-version: 16
# Build, Zip and Upload Plugin
- name: Zip Plugin
id: pluginmachine
uses: imaginary-machines/builder-action@main
with:
PLUGIN_MACHINE_TOKEN: ${{ secrets.PLUGIN_MACHINE_TOKEN }}
PLUGIN_DIR: ${{ github.workspace }}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
name: Build and ZIP
on:
pull_request:
types: [opened, synchronize]
jobs:
make_zip:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
#Use Node 16
- uses: actions/setup-node@v3
with:
node-version: 16
# Build, Zip and Upload Plugin
- name: Zip Plugin
id: pluginmachine
uses: imaginary-machines/builder-action@main
with:
PLUGIN_MACHINE_TOKEN: ${{ secrets.PLUGIN_MACHINE_TOKEN }}
PLUGIN_DIR: ${{ github.workspace }}
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
COMMENT_PR: true
Install the dependencies
npm install
Run the tests ✔️
npm test
GitHub Actions will run the entry point from the action.yml. Packaging assembles the code into one file that can be checked in to Git, enabling fast and reliable execution and preventing the need to check in node_modules.
Actions are run from GitHub repos. Packaging the action will create a packaged action in the dist folder.
Run prepare
npm run prepare
Since the packaged index.js is run from the dist folder.
git add dist
Users shouldn't consume the action from master since that would be latest code and actions can break compatibility between major versions.
Checkin to the v1 release branch
git checkout -b v1
git commit -a -m "v1 release"
git push origin v1
Note: We recommend using the --license
option for ncc, which will create a license file for all of the production node modules used in your project.
Your action is now published! 🚀
See the versioning documentation