Skip to content

Commit b4b58db

Browse files
author
Алексей Тихомиров
committed
fix: update E2E tests to use named fixture classes and fix CI workflow
1 parent b5bdb70 commit b4b58db

7 files changed

Lines changed: 63 additions & 589 deletions

File tree

.github/workflows/ci.yml

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,12 @@ jobs:
4949
e2e:
5050
name: E2E Tests (WordPress ${{ matrix.wordpress-version }})
5151
runs-on: ubuntu-latest
52+
timeout-minutes: 10 # Жёсткий таймаут — не более 10 минут
5253
strategy:
5354
fail-fast: false
5455
matrix:
5556
php-version: [ "8.3" ]
5657
wordpress-version: [ "latest", "6.7" ]
57-
include:
58-
- wordpress-version: latest
59-
wp-version-string: "latest"
60-
- wordpress-version: "6.7"
61-
wp-version-string: "6.7"
6258

6359
services:
6460
mysql:
@@ -70,7 +66,7 @@ jobs:
7066
MYSQL_PASSWORD: wordpress
7167
ports:
7268
- 3306:3306
73-
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
69+
options: --health-cmd="mysqladmin ping" --health-interval=5s --health-timeout=3s --health-retries=5
7470

7571
steps:
7672
- name: Checkout
@@ -81,8 +77,9 @@ jobs:
8177
with:
8278
php-version: ${{ matrix.php-version }}
8379
extensions: mysqli, pdo_mysql
84-
coverage: pcov
80+
coverage: none # Отключаем coverage для E2E — ускоряет тесты
8581
tools: composer:v2, wp-cli
82+
ini-values: memory_limit=512M
8683

8784
- name: Cache Composer dependencies
8885
uses: actions/cache@v4
@@ -92,56 +89,70 @@ jobs:
9289
restore-keys: |
9390
${{ runner.os }}-php-${{ matrix.php-version }}-composer-
9491
92+
- name: Cache WordPress
93+
uses: actions/cache@v4
94+
with:
95+
path: /tmp/wordpress
96+
key: wordpress-${{ matrix.wordpress-version }}-v1
97+
restore-keys: |
98+
wordpress-${{ matrix.wordpress-version }}-
99+
95100
- name: Install dependencies
96-
run: composer install --no-interaction --no-progress --prefer-dist
101+
run: composer install --no-interaction --no-progress --prefer-dist --no-dev
97102

98103
- name: Setup WordPress
99104
run: |
100-
mkdir -p /tmp/wordpress
101-
cd /tmp/wordpress
102-
103-
# Download WordPress
104-
if [ "${{ matrix.wordpress-version }}" = "latest" ]; then
105-
wp core download --version=latest --allow-root
105+
# Проверяем, есть ли WordPress в кэше
106+
if [ ! -f /tmp/wordpress/wp-load.php ]; then
107+
echo "Downloading WordPress..."
108+
mkdir -p /tmp/wordpress
109+
cd /tmp/wordpress
110+
111+
if [ "${{ matrix.wordpress-version }}" = "latest" ]; then
112+
wp core download --version=latest --allow-root
113+
else
114+
wp core download --version=${{ matrix.wordpress-version }} --allow-root
115+
fi
106116
else
107-
wp core download --version=${{ matrix.wordpress-version }} --allow-root
117+
echo "Using cached WordPress"
108118
fi
109119
110-
# Configure WordPress
120+
cd /tmp/wordpress
121+
122+
# Конфигурация (всегда пересоздаём — БД новая)
111123
wp config create \
112124
--dbname=wordpress_test \
113125
--dbuser=wordpress \
114126
--dbpass=wordpress \
115127
--dbhost=127.0.0.1 \
128+
--force \
116129
--allow-root
117130
118-
# Install WordPress
131+
# Установка WordPress
119132
wp core install \
120133
--url=http://localhost:8080 \
121134
--title="WP Queue Test" \
122135
--admin_user=admin \
123136
--admin_password=admin \
124137
--admin_email=admin@example.com \
138+
--skip-email \
125139
--allow-root
126140
127-
# Create uploads directory
128141
mkdir -p wp-content/uploads
129142
chmod 755 wp-content/uploads
130143
131144
- name: Install Plugin
132145
run: |
133146
cd /tmp/wordpress
147+
rm -rf wp-content/plugins/wp-queue 2>/dev/null || true
134148
ln -s ${{ github.workspace }} wp-content/plugins/wp-queue
135-
136-
# Activate plugin
137149
wp plugin activate wp-queue --allow-root
138150
139151
- name: Run E2E tests
152+
timeout-minutes: 5 # Таймаут на сами тесты
140153
run: |
141154
cd ${{ github.workspace }}
142-
WP_TESTS_DIR=/tmp/wordpress-tests-lib \
143-
WP_CORE_DIR=/tmp/wordpress \
144-
./vendor/bin/pest tests/Feature --configuration=phpunit-e2e.xml
155+
./vendor/bin/pest tests/Feature --configuration=phpunit-e2e.xml --stop-on-failure --no-coverage
145156
env:
146157
WP_TESTS_DIR: /tmp/wordpress-tests-lib
147158
WP_CORE_DIR: /tmp/wordpress

0 commit comments

Comments
 (0)