44 push :
55 pull_request :
66 workflow_dispatch :
7- schedule :
8- - cron : ' 0 9 * * 1'
7+ inputs :
8+ shop_branch :
9+ description : ' Branch of oxideshop-ce to use'
10+ required : false
911
1012jobs :
1113 run_tests :
1214 env :
13- INSTALL_DIR : migration_wrapper
15+ SHOP_BRANCH : ${{ inputs.shop_branch || 'b-7.5.x' }}
1416 strategy :
1517 matrix :
1618 php : [ '8.3', '8.4', '8.5' ]
1719 mysql : [ '8.0', '8.4' ]
1820 fail-fast : false
1921 runs-on : ubuntu-latest
2022 steps :
21- - name : Clone Docker Eshop SDK
23+ - name : Clone testing environment
2224 run : git clone --depth 1 https://github.com/OXID-eSales/docker-eshop-sdk.git --branch master --single-branch .
2325
24- - name : Clone Migration Wrapper (on default branch - ${{ github.event.repository.default_branch }})
25- run : git clone --branch ${{ github.ref_name }} https://github.com/OXID-eSales/oxideshop-doctrine-migration-wrapper.git source/$INSTALL_DIR
26+ - name : Clone the shop
27+ run : git clone --depth 1 https://github.com/OXID-eSales/oxideshop_ce.git --branch ${{ env.SHOP_BRANCH }} --single-branch source
2628
2729 - name : Prepare container configuration
2830 run : |
@@ -33,39 +35,48 @@ jobs:
3335 -e "s#MYSQL_VERSION=.*#MYSQL_VERSION='${{ matrix.mysql }}'#g;"\
3436 .env
3537 perl -pi\
36- -e 's#display_errors =.*#display_errors = true#g;'\
37- -e 'print "xdebug.max_nesting_level=1000\n\n";'\
38- -e 'print "error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_WARNING\n"'\
39- containers/php/custom.ini
40- perl -pi\
41- -e 's#/var/www/#/var/www/$INSTALL_DIR/source/#g;'\
38+ -e 's#/var/www/#/var/www/source/#g;'\
4239 containers/httpd/project.conf
4340
41+ - name : Prepare shop configuration
42+ run : |
43+ cp source/source/config.inc.php.dist source/source/config.inc.php
44+ perl -pi\
45+ -e 's#<dbHost>#mysql#g;'\
46+ -e 's#<dbUser>#root#g;'\
47+ -e 's#<dbName>#example#g;'\
48+ -e 's#<dbPwd>#root#g;'\
49+ -e 's#<dbPort>#3306#g;'\
50+ -e 's#<sShopURL>#http://localhost.local/#g;'\
51+ -e 's#<sShopDir>#/var/www/source/#g;'\
52+ -e 's#<sCompileDir>#/var/www/source/tmp/#g;'\
53+ source/source/config.inc.php
54+
4455 - name : Start containers
4556 run : |
4657 make up
4758 sleep 2
4859
49- - name : Install Composer dependencies (on default branch - ${{ github.event.repository.default_branch }})
60+ - name : Install shop and component
5061 run : |
51- docker compose exec -T -w /var/www/$INSTALL_DIR php \
52- composer config allow-plugins.oxid-esales/oxideshop-unified-namespace-generator true
53- docker compose exec -T -w /var/www/$INSTALL_DIR php \
54- composer config allow-plugins.oxid-esales/oxideshop-composer-plugin true
55- docker compose exec -T -w /var/www/$INSTALL_DIR php \
56- composer install --no-interaction
62+ docker compose exec -T php composer config preferred-install.oxid-esales/* source
63+ docker compose exec -T php composer require oxid-esales/oxideshop-doctrine-migration-wrapper:dev-${{ github.ref_name }} --prefer-source --no-interaction
64+ cd source && sed -i 's|"OxidEsales\\\\EshopCommunity\\\\Tests\\\\|"OxidEsales\\\\DoctrineMigrationWrapper\\\\Tests\\\\": "vendor/oxid-esales/oxideshop-doctrine-migration-wrapper/tests",\n "OxidEsales\\\\EshopCommunity\\\\Tests\\\\|' composer.json
65+ docker compose exec -T php composer dump-autoload
5766
58- - name : Install Shop
59- run : |
60- docker compose exec -T -w /var/www/$INSTALL_DIR php \
61- vendor/bin/oe-console oe:setup:shop --db-host mysql --db-port 3306 --db-name example --db-user root --db-password root --shop-url localhost.localhost --shop-directory /var/www/$INSTALL_DIR/source/ --compile-directory /var/www/$INSTALL_DIR/source/tmp/
67+ - name : Reset shop
68+ run : docker compose exec -T php php bin/oe-console oe:database:reset --db-host=mysql --db-port=3306 --db-name=example --db-user=root --db-password=root --force
6269
6370 - name : Run tests
6471 run : |
65- docker compose exec -T -e ACTIONS_RUNNER_DEBUG=true -w /var/www/$INSTALL_DIR php \
66- php vendor/bin/phpunit --bootstrap /var/www/$INSTALL_DIR/source/bootstrap .php tests/
72+ docker compose exec -T php php vendor/bin/phpunit vendor/oxid-esales/oxideshop-doctrine-migration-wrapper/tests --bootstrap= /var/www/source/bootstrap.php | tee PHP${{ matrix. php }}_MYSQL${{ matrix.mysql }}_phpunit_log.txt 2>&1 || true
73+ if grep -q -Ei 'fail|\\.\\=\\=|Warning|Deprecated|Fatal|Error' PHP${{ matrix .php }}_MYSQL${{ matrix.mysql }}_phpunit_log.txt; then exit 1; fi
6774
68- - name : Stop containers
69- run : |
70- docker compose down
71- sleep 2
75+ - name : Upload PHPUnit Log
76+ if : always()
77+ uses : actions/upload-artifact@v4
78+ with :
79+ name : phpunit-logs-PHP${{ matrix.php }}-MYSQL${{ matrix.mysql }}
80+ path : PHP${{ matrix.php }}_MYSQL${{ matrix.mysql }}_phpunit_log.txt
81+ if-no-files-found : error
82+ retention-days : 7
0 commit comments