63 lines
1.8 KiB
YAML
63 lines
1.8 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
- develop
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
quality:
|
|
name: Composer, lint, static analysis, and unit tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '8.4'
|
|
coverage: none
|
|
tools: composer:v2
|
|
- run: composer validate --strict
|
|
- run: composer install --no-interaction --prefer-dist
|
|
- run: composer lint
|
|
- run: composer analyse
|
|
- run: composer test
|
|
|
|
smoke:
|
|
name: WordPress activation smoke test
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
mysql:
|
|
image: mysql:8.0
|
|
env:
|
|
MYSQL_DATABASE: wordpress
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
|
|
ports:
|
|
- 3306:3306
|
|
options: >-
|
|
--health-cmd="mysqladmin ping"
|
|
--health-interval=10s
|
|
--health-timeout=5s
|
|
--health-retries=10
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: '7.4'
|
|
coverage: none
|
|
tools: wp-cli
|
|
- name: Install WordPress
|
|
run: |
|
|
wp core download --path=/tmp/wordpress
|
|
wp config create --path=/tmp/wordpress --dbname=wordpress --dbuser=root --dbpass='' --dbhost=127.0.0.1
|
|
wp core install --path=/tmp/wordpress --url=http://example.test --title=Smoke --admin_user=admin --admin_password=password --admin_email=admin@example.test --skip-email
|
|
- name: Activate plugin and verify CPT
|
|
run: |
|
|
ln -s "$GITHUB_WORKSPACE" /tmp/wordpress/wp-content/plugins/podcast-rss-to-cpt
|
|
wp plugin activate podcast-rss-to-cpt --path=/tmp/wordpress
|
|
test "$(wp post-type get podcast_episode --field=name --path=/tmp/wordpress)" = "podcast_episode"
|