Files
Pod2CPT/.github/workflows/ci.yml
T

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"