fix translations #333
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
on: | |
push: | |
branches: | |
- '*' | |
jobs: | |
ci-current: | |
runs-on: ubuntu-22.04 | |
strategy: | |
max-parallel: 15 | |
fail-fast: false | |
matrix: | |
include: | |
- php-version: 8.0 | |
wordpress-version: "5.9.5" | |
woocommerce-version: "6.9.4" | |
- php-version: 8.1 | |
wordpress-version: "6.1" | |
woocommerce-version: "7.4.1" | |
- php-version: 8.2 | |
wordpress-version: "6.2" | |
woocommerce-version: "7.8.2" | |
- php-version: 8.2 | |
wordpress-version: "6.3" | |
woocommerce-version: "7.9.0" | |
- php-version: 8.2 | |
wordpress-version: "6.3" | |
woocommerce-version: "8.0.3" | |
- php-version: 8.2 | |
wordpress-version: "6.3" | |
woocommerce-version: "8.1.0" | |
- php-version: 8.3 | |
wordpress-version: "6.5" | |
woocommerce-version: "8.9.1" | |
- php-version: 8.3 | |
wordpress-version: "6.6" | |
woocommerce-version: "9.1.0" | |
- php-version: 8.4 | |
wordpress-version: "6.7" | |
woocommerce-version: "9.4.2" | |
name: woo v${{ matrix.woocommerce-version }}, wp v${{ matrix.wordpress-version }} @ php v${{ matrix.php-version }} | |
services: | |
mysql: | |
image: mysql:5.7 | |
env: | |
MYSQL_USER: wordpress | |
MYSQL_PASSWORD: wordpress | |
MYSQL_ALLOW_EMPTY_PASSWORD: yes | |
MYSQL_DATABASE: wordpress | |
ports: | |
- 3306:3306 | |
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 | |
env: | |
WORDPRESS_DIR: /opt/wordpress | |
PLUGIN_DIR: /opt/wordpress/wp-content/plugins/wc-easycredit | |
WORDPRESS_DB_HOST: 127.0.0.1 | |
WORDPRESS_DB_USER: wordpress | |
WORDPRESS_DB_PASSWORD: wordpress | |
WORDPRESS_DB_NAME: wordpress | |
WORDPRESS_DEBUG: true | |
WP_CLI_ALLOW_ROOT: true | |
PHP_VERSION: ${{ matrix.php-version }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@master | |
- name: Setup NodeJs | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: Install PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
#extensions: mbstring, curl, dom, fileinfo, gd, iconv, intl, json, xml, mbstring, pdo, phar, zip, sodium | |
extensions: json, curl, dom, mbstring, intl, xml, zip, apcu, opcache | |
tools: composer:2.1.5 | |
coverage: xdebug | |
ini-values: error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT" | |
- name: Debug | |
run: | | |
php -v | |
php -i | |
env | |
node -v | |
- name: Install Wordpress & wooCommerce | |
run: | | |
curl -L "https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar" > /usr/local/bin/wp && chmod +x /usr/local/bin/wp | |
mkdir -p $WORDPRESS_DIR && cd $WORDPRESS_DIR | |
wp core download --version=${{ matrix.wordpress-version }} --locale=de_DE | |
wp config create --dbhost=$WORDPRESS_DB_HOST --dbname=$WORDPRESS_DB_NAME --dbuser=$WORDPRESS_DB_USER --dbpass=$WORDPRESS_DB_PASSWORD --locale=de_DE \ | |
--extra-php="define('WP_DEBUG',true); define('WP_DEBUG_LOG',true); define('WP_DEBUG_DISPLAY',false); define( 'FS_METHOD', 'direct' );" | |
wp core install --url=localhost --title=Example --admin_user=admin --admin_password=password --admin_email=info@example.com | |
wp plugin install woocommerce --version=${{ matrix.woocommerce-version }} --activate | |
wp theme install storefront --activate | |
wp language theme install storefront de_DE | |
wp language plugin install woocommerce de_DE | |
# fix for missing translations, lang files seem to be expected in another dir | |
LANG_DIR=$WORDPRESS_DIR/wp-content/languages | |
[ ! -d $LANG_DIR/woocommerce ] && mkdir $LANG_DIR/woocommerce | |
[ -f $LANG_DIR/plugins/woocommerce-de_DE.po ] && cp $LANG_DIR/plugins/woocommerce-de_DE.po $LANG_DIR/woocommerce/ | |
[ -f $LANG_DIR/plugins/woocommerce-de_DE.mo ] && cp $LANG_DIR/plugins/woocommerce-de_DE.mo $LANG_DIR/woocommerce/ | |
#wp option pluck woocommerce_onboarding_profile 'skipped' | |
wp option update woocommerce_show_marketplace_suggestions 'no' | |
wp option update woocommerce_allow_tracking 'no' | |
wp option update woocommerce_task_list_complete 'yes' | |
wp option update woocommerce_task_list_welcome_modal_dismissed 'yes' | |
wp option update woocommerce_default_country 'DE:DE-BY' | |
wp option update woocommerce_currency 'EUR' | |
wp rewrite structure '/index.php/%postname%/' | |
wp wc product create --name=Test --slug=Test --type=simple --status=1 --sku=test --regular_price=201 --status=publish --user=admin | |
PID=`wp wc product create --name=Variable --slug=Variable --type=variable --status=1 --sku=variable --regular_price=201 --status=publish --user=admin --attributes='[ | |
{ "name": "Size", "options" : ["small", "medium", "large"], "visible": true, "variation": true } | |
]' --porcelain` | |
wp wc product_variation create $PID --attributes='[{"name":"Size","option":"small"}]' --regular_price=201 --user=admin | |
wp wc product_variation create $PID --attributes='[{"name":"Size","option":"medium"}]' --regular_price=21 --user=admin | |
wp wc product_variation create $PID --attributes='[{"name":"Size","option":"large"}]' --regular_price=21 --user=admin | |
- name: Install easyCredit Plugin | |
run: | | |
cd $GITHUB_WORKSPACE | |
composer require \ | |
php-stubs/wordpress-stubs:v${{ matrix.wordpress-version }} \ | |
php-stubs/woocommerce-stubs:v${{ matrix.woocommerce-version }} | |
composer install -n | |
mkdir -p $WORDPRESS_DIR/wp-content/plugins | |
ln -s $GITHUB_WORKSPACE/src/woocommerce-gateway-ratenkaufbyeasycredit $PLUGIN_DIR | |
cd $WORDPRESS_DIR | |
wp plugin activate wc-easycredit | |
echo '{"enabled":"yes","display_settings":"","title":"","instructions":"","api_details":"","api_key":"${{ secrets.EASYCREDITAPIKEY }}","api_token":"${{ secrets.EASYCREDITAPIPASSWORD }}","api_signature":"${{ secrets.EASYCREDITAPISIGNATURE }}","api_verify_credentials":"","debug":"yes","marketing_intro":"","marketing_components_express_checkout":"","express_checkout_detail_enabled":"yes","express_checkout_cart_enabled":"yes","marketing_components_widget":"","widget_enabled":"yes","widget_selector":".product .summary .price","cart_widget_enabled":"yes","cart_widget_selector":".wc-proceed-to-checkout","marketing_components_modal":"","modal_enabled":"no","modal_delay":"10","modal_snooze_for":"10","modal_src":"","marketing_components_card":"","card_enabled":"no","card_search_enabled":"no","card_position":"1","card_src":"","marketing_components_flashbox":"","flashbox_enabled":"no","flashbox_src":"","marketing_components_bar":"","bar_enabled":"no","transactions":"","mark_shipped":"no","mark_shipped_status":"wc-completed","mark_refunded":"no","mark_refunded_status":"wc-refunded","clickandcollect_intro":"","marketing_components_clickandcollect":"","clickandcollect_shipping_method":""}' | wp option set woocommerce_ratenkaufbyeasycredit_settings --format=json | |
- name: Static Analyze | |
run: | | |
cd $PLUGIN_DIR | |
php vendor/bin/phpstan analyze . | |
- name: Cache Node Modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: node-modules-${{ hashFiles('yarn.lock') }} | |
- name: Install Dependencies | |
run: | | |
npm install --global yarn | |
yarn install --frozen-lockfile | |
- name: Store Playwright's Version | |
run: | | |
PLAYWRIGHT_VERSION=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//') | |
echo "Playwright's Version: $PLAYWRIGHT_VERSION" | |
echo "PLAYWRIGHT_VERSION=$PLAYWRIGHT_VERSION" >> $GITHUB_ENV | |
- name: Cache Playwright Browsers for Playwright's Version | |
id: cache-playwright-browsers | |
uses: actions/cache@v3 | |
with: | |
path: ~/.cache/ms-playwright | |
key: playwright-browsers-${{ env.PLAYWRIGHT_VERSION }} | |
- name: Setup Playwright | |
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true' | |
run: yarn playwright install --with-deps chromium | |
- name: Playwright E2E Tests | |
run: | | |
cd $GITHUB_WORKSPACE | |
VERSION=${{ matrix.woocommerce-version }} yarn playwright test -c tests/ | |
- name: Save Logs for Debugging | |
if: always() | |
run: | | |
LOG_DIR=playwright-report/logs | |
mkdir $LOG_DIR | |
[ -f $WORDPRESS_DIR/wp-content/debug.log ] && cp -r $WORDPRESS_DIR/wp-content/debug.log $LOG_DIR/ | |
[ -d $WORDPRESS_DIR/wp-content/uploads/wc-logs ] && cp -r $WORDPRESS_DIR/wp-content/uploads/wc-logs/*.log $LOG_DIR/ | |
for i in $LOG_DIR/*; do | |
f=$(basename $i) | |
echo "<a href=\"$(basename $f)\">$f</a><br />" >> $LOG_DIR/index.html | |
done; | |
- name: Deploy Report | |
if: always() | |
uses: cloudflare/wrangler-action@v3 | |
with: | |
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} | |
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} | |
command: pages deploy playwright-report/ --project-name=easycredit-playwright-reports |