Skip to content

Commit da260f0

Browse files
committed
Pending changes
1 parent 8b7465f commit da260f0

2 files changed

Lines changed: 134 additions & 58 deletions

File tree

.github/workflows/magento-install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ mariadb -h"${MYSQL_HOST}" -P"${MYSQL_PORT}" -uroot -p"${MYSQL_ROOT_PASSWORD}" -e
1919

2020
echo "Waiting for OpenSearch (${OPENSEARCH_HOST}:${OPENSEARCH_PORT})"
2121
ready=0
22-
for i in {1..60}; do
22+
for i in {1..120}; do
2323
if curl -s "http://${OPENSEARCH_HOST}:${OPENSEARCH_PORT}" | grep -q '"tagline"'; then
2424
echo "OK"
2525
ready=1

.github/workflows/playwright.yml

Lines changed: 133 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@ on: ['push', 'pull_request']
44
jobs:
55
playwright:
66
runs-on: ubuntu-latest
7-
container:
8-
image: yireo/magento2playwright:2.4.8-p3
7+
98
env:
109
GIT_DEPTH: 1
1110
GIT_STRATEGY: fetch
@@ -34,7 +33,6 @@ jobs:
3433
OPENSEARCH_JAVA_OPTS: "-Xms128m -Xmx128m"
3534
OPENSEARCH_INITIAL_ADMIN_PASSWORD: "admin"
3635
MAGENTO_VERSION: "2.4.8-p3"
37-
3836
GITLAB_TOKEN: ${{ secrets.GITLAB_TOKEN }}
3937

4038
services:
@@ -45,9 +43,19 @@ jobs:
4543
MYSQL_USER: magento2
4644
MYSQL_PASSWORD: magento2
4745
MYSQL_ROOT_PASSWORD: root
46+
options: >-
47+
--health-cmd="mysqladmin ping"
48+
--health-interval=10s
49+
--health-timeout=5s
50+
--health-retries=3
4851
4952
redis:
5053
image: redis:latest
54+
options: >-
55+
--health-cmd="redis-cli ping"
56+
--health-interval=10s
57+
--health-timeout=5s
58+
--health-retries=3
5159
5260
opensearch:
5361
image: yireo/opensearch
@@ -71,64 +79,132 @@ jobs:
7179
echo COMPOSER_NAME=`jq '.name' composer.json -r` >> $GITHUB_ENV
7280
echo MAGENTO_MODULE=`jq '.module_name' MODULE.json -r` >> $GITHUB_ENV
7381
74-
- name: Configure Yireo GitLab
82+
- name: Setup Magento in Docker
7583
if: env.SKIP_JOB != 'true'
7684
run: |
77-
test -n "${{ secrets.GITLAB_TOKEN }}" || exit 0
78-
cd /tmp/magento
79-
composer config gitlab-domains gitlab.yireo.com
80-
composer config --global --auth http-basic.gitlab.yireo.com yireo "${GITLAB_TOKEN}"
81-
composer config repositories.loki-third-party composer https://gitlab.yireo.com/api/v4/group/loki-third-party/-/packages/composer/packages.json
82-
composer config repositories.loki-checkout composer https://gitlab.yireo.com/api/v4/group/loki-checkout/-/packages/composer/packages.json
83-
84-
- name: Prepare Magento Playwright setup
85+
docker run --rm \
86+
--network host \
87+
-v "$GITHUB_WORKSPACE:/workspace" \
88+
-w /workspace \
89+
-e MAGENTO_BASE_URL="${MAGENTO_BASE_URL}" \
90+
-e MAGENTO_BACKEND_FRONTNAME="${MAGENTO_BACKEND_FRONTNAME}" \
91+
-e MAGENTO_ADMIN_FIRSTNAME="${MAGENTO_ADMIN_FIRSTNAME}" \
92+
-e MAGENTO_ADMIN_LASTNAME="${MAGENTO_ADMIN_LASTNAME}" \
93+
-e MAGENTO_ADMIN_EMAIL="${MAGENTO_ADMIN_EMAIL}" \
94+
-e MAGENTO_ADMIN_USER="${MAGENTO_ADMIN_USER}" \
95+
-e MAGENTO_ADMIN_PASSWORD="${MAGENTO_ADMIN_PASSWORD}" \
96+
-e MAGENTO_LANGUAGE="${MAGENTO_LANGUAGE}" \
97+
-e MAGENTO_CURRENCY="${MAGENTO_CURRENCY}" \
98+
-e MAGENTO_TIMEZONE="${MAGENTO_TIMEZONE}" \
99+
-e MAGENTO_USE_REWRITES="${MAGENTO_USE_REWRITES}" \
100+
-e MAGENTO_SEARCH_ENGINE="${MAGENTO_SEARCH_ENGINE}" \
101+
-e COMPOSER_ALLOW_SUPERUSER="${COMPOSER_ALLOW_SUPERUSER}" \
102+
-e COMPOSER_MEMORY_LIMIT="${COMPOSER_MEMORY_LIMIT}" \
103+
-e MYSQL_HOST="${MYSQL_HOST}" \
104+
-e MYSQL_USER="${MYSQL_USER}" \
105+
-e MYSQL_PASSWORD="${MYSQL_PASSWORD}" \
106+
-e MYSQL_DATABASE="${MYSQL_DATABASE}" \
107+
-e MYSQL_ROOT_PASSWORD="${MYSQL_ROOT_PASSWORD}" \
108+
-e MYSQL_PORT="${MYSQL_PORT}" \
109+
-e OPENSEARCH_HOST="${OPENSEARCH_HOST}" \
110+
-e OPENSEARCH_PORT="${OPENSEARCH_PORT}" \
111+
-e MAGENTO_VERSION="${MAGENTO_VERSION}" \
112+
-e GITLAB_TOKEN="${GITLAB_TOKEN}" \
113+
-e COMPOSER_NAME="${COMPOSER_NAME}" \
114+
-e MAGENTO_MODULE="${MAGENTO_MODULE}" \
115+
yireo/magento2playwright:2.4.8-p3 \
116+
sh -c '
117+
set -e
118+
119+
# Create Magento in /tmp first (fast on tmpfs)
120+
cd /tmp/magento
121+
122+
if [ -n "${GITLAB_TOKEN}" ]; then
123+
composer config gitlab-domains gitlab.yireo.com
124+
composer config --global --auth http-basic.gitlab.yireo.com yireo "${GITLAB_TOKEN}"
125+
composer config repositories.loki-third-party composer https://gitlab.yireo.com/api/v4/group/loki-third-party/-/packages/composer/packages.json
126+
composer config repositories.loki-checkout composer https://gitlab.yireo.com/api/v4/group/loki-checkout/-/packages/composer/packages.json
127+
fi
128+
129+
# Run version-specific composer scripts if they exist
130+
test -f "/workspace/.github/workflows/composer-additional.sh" && source "/workspace/.github/workflows/composer-additional.sh"
131+
test -f "/workspace/.github/workflows/composer-${MAGENTO_VERSION}.sh" && source "/workspace/.github/workflows/composer-${MAGENTO_VERSION}.sh"
132+
133+
# Add local module and dependencies
134+
composer config repositories.local-source "{\"type\": \"path\", \"url\": \"/workspace\", \"options\": {\"symlink\": false}}"
135+
composer require --prefer-source -- "${COMPOSER_NAME}:@dev" loki-checkout/magento2-core-cli:@dev loki-checkout/magento2-functional-tests:@dev yireo/magento2-enable-module-sequence
136+
137+
# Install Magento
138+
/workspace/.github/workflows/magento-install.sh
139+
140+
# Configure Magento
141+
bin/magento deploy:mode:set developer
142+
bin/magento module:enable Yireo_EnableModuleSequence
143+
bin/magento module:sequence LokiCheckout_FunctionalTests
144+
bin/magento module:sequence LokiCheckout_CoreCli
145+
bin/magento module:sequence "${MAGENTO_MODULE}"
146+
bin/magento setup:upgrade
147+
bin/magento loki-checkout:modules:dump
148+
149+
# Set test token
150+
magerun2 config:store:set loki_functional_tests/general/token loki -n
151+
152+
# Copy to workspace (this is mounted from host, so it persists)
153+
echo "Copying Magento to workspace..."
154+
cp -R /tmp/magento/* /workspace/magento/
155+
156+
echo "Magento setup complete"
157+
ls -la /workspace/magento/
158+
'
159+
160+
- name: Verify Magento installation
85161
if: env.SKIP_JOB != 'true'
86162
run: |
87-
cd /tmp/magento
88-
git config --global --add safe.directory /__w/Loki_Components/Loki_Components
89-
90-
test -f "$GITHUB_WORKSPACE/.github/workflows/composer-additional.sh" && source "$GITHUB_WORKSPACE/.github/workflows/composer-additional.sh"
91-
test -f "$GITHUB_WORKSPACE/.github/workflows/composer-${MAGENTO_VERSION}.sh" && source "$GITHUB_WORKSPACE/.github/workflows/composer-${MAGENTO_VERSION}.sh"
92-
93-
composer config repositories.local-source "{\"type\": \"path\", \"url\": \"$GITHUB_WORKSPACE\", \"options\": {\"symlink\": false}}"
94-
composer require --prefer-source -- "${COMPOSER_NAME}:@dev" loki-checkout/magento2-core-cli:@dev loki-checkout/magento2-functional-tests:@dev yireo/magento2-enable-module-sequence
163+
echo "Verifying Magento installation in workspace..."
164+
ls -la $GITHUB_WORKSPACE/magento/
165+
test -f $GITHUB_WORKSPACE/magento/bin/magento || (echo "ERROR: Magento installation verification failed" && exit 1)
166+
echo "Magento installation verified successfully"
95167
96-
$GITHUB_WORKSPACE/.github/workflows/magento-install.sh
97-
98-
bin/magento deploy:mode:set developer
99-
bin/magento module:enable Yireo_EnableModuleSequence
100-
bin/magento module:sequence LokiCheckout_FunctionalTests
101-
bin/magento module:sequence LokiCheckout_CoreCli
102-
bin/magento module:sequence "${MAGENTO_MODULE}"
103-
bin/magento setup:upgrade
104-
bin/magento loki-checkout:modules:dump
105-
106-
magerun2 config:store:set loki_functional_tests/general/token loki -n
107-
cp -R /tmp/magento $GITHUB_WORKSPACE/
108-
109-
- name: Prepare Magento Playwright setup
168+
- name: Run Playwright tests
110169
if: env.SKIP_JOB != 'true'
111170
run: |
112-
docker run --rm --network host --ipc=host -v "$GITHUB_WORKSPACE:/work" -w /work \
113-
mcr.microsoft.com/playwright:v1.59.1-noble bash -lc '
114-
ls -al /work
115-
cd /work/magento/vendor/loki-checkout/magento2-functional-tests/Test/Playwright/
116-
npm install
117-
printf "TEST_URL=http://127.0.0.1:8888\nTEST_TOKEN=loki\n" > .env
118-
MAGENTO_ROOT=/work/magento npx playwright test --project=$MAGENTO_MODULE
119-
'
120-
121-
#- name: Prepare Magento Playwright setup
122-
# if: env.SKIP_JOB != 'true'
123-
# uses: docker://mcr.microsoft.com/playwright:v1.59.1-noble
124-
# with:
125-
# args: >
126-
# bash -lc "
127-
# cd $GITHUB_WORKSPACE/magento/vendor/loki-checkout/magento2-functional-tests/Test/Playwright/
128-
# cat $GITHUB_WORKSPACE/magento/app/etc/loki-checkout.json
129-
# npm install
130-
# #npx playwright install
131-
# echo TEST_URL=http://localhost:8888 >> .env
132-
# echo TEST_TOKEN=loki >> .env
133-
# MAGENTO_ROOT=$GITHUB_WORKSPACE/magento npx playwright test --project=$MAGENTO_MODULE
134-
# "
171+
echo "Starting Playwright tests..."
172+
echo "GITHUB_WORKSPACE: $GITHUB_WORKSPACE"
173+
echo "MAGENTO_MODULE: $MAGENTO_MODULE"
174+
175+
# Run Playwright in its own container
176+
docker run --rm \
177+
--network host \
178+
--ipc=host \
179+
-v "$GITHUB_WORKSPACE:/work" \
180+
-w /work \
181+
-e MAGENTO_MODULE="${MAGENTO_MODULE}" \
182+
mcr.microsoft.com/playwright:v1.59.1-noble \
183+
bash -lc '
184+
set -e
185+
186+
echo "Playwright container started"
187+
echo "Checking /work directory..."
188+
ls -la /work/
189+
190+
if [ ! -d "/work/magento" ]; then
191+
echo "ERROR: /work/magento directory not found"
192+
exit 1
193+
fi
194+
195+
echo "Magento directory found, contents:"
196+
ls -la /work/magento/
197+
198+
echo "Navigating to Playwright test directory..."
199+
cd /work/magento/vendor/loki-checkout/magento2-functional-tests/Test/Playwright/
200+
201+
echo "Installing npm dependencies..."
202+
npm install
203+
204+
echo "Creating .env file..."
205+
printf "TEST_URL=http://127.0.0.1:8888\nTEST_TOKEN=loki\n" > .env
206+
cat .env
207+
208+
echo "Running Playwright tests for project: ${MAGENTO_MODULE}"
209+
MAGENTO_ROOT=/work/magento npx playwright test --project=${MAGENTO_MODULE}
210+
'

0 commit comments

Comments
 (0)