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: '7.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"