Skip to content

ci(*): Update ci matrixes #48

ci(*): Update ci matrixes

ci(*): Update ci matrixes #48

name: Installation and Varnish test suite
on:
push:
branches:
- main
paths-ignore:
- "**.md"
workflow_dispatch:
permissions:
contents: read
env:
# Allow ddev get to use a GitHub token to prevent rate limiting by tests
DDEV_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
installation-and-varnish-test-suite:
strategy:
fail-fast: false
matrix:
# Last one for the current and previous minor, greatest php version
m2-version: ["2.3.7", "2.4.7"]
php-version: ["7.4", "8.3"]
exclude:
- { php-version: "8.3", m2-version: "2.3.7" }
- { php-version: "7.4", m2-version: "2.4.7" }
name: Installation and Varnish test suite
# @see https://devdocs.magento.com/marketplace/sellers/installation-and-varnish-tests.html
runs-on: ubuntu-latest
env:
EXTENSION_PACKAGE_NAME: "okaeli/magento2-category-code"
EXTENSION_NAME: "Okaeli_CategoryCode"
EXTENSION_PATH: "okaeli-category-code"
steps:
- name: Install Magento 2
uses: julienloizelet/magento2-ddev-installation@v3
with:
php_version: ${{ matrix.php-version }}
magento_version: ${{ matrix.m2-version }}
composer_auth: ${{ secrets.M2_COMPOSER_AUTH }}
magento_repository: "https://repo.magento.com/"
varnish_setup: "true"
- name: Clone M2 ${{ env.EXTENSION_NAME }} files
uses: actions/checkout@v4
with:
path: my-own-modules/${{ env.EXTENSION_PATH }}
- name: Prepare composer repositories
run: |
ddev composer config --unset repositories.0
ddev composer config repositories.0 '{"type": "path", "url":"my-own-modules/${{ env.EXTENSION_PATH }}/", "canonical": true, "options": {"symlink": false}}'
ddev composer config repositories.1 '{"type": "composer", "url":"https://repo.magento.com/", "exclude": ["${{ env.EXTENSION_PACKAGE_NAME }}"]}'
- name: Add ${{ env.EXTENSION_NAME }} as composer dependency
run: |
ddev composer require ${{ env.EXTENSION_PACKAGE_NAME }}:@dev --no-interaction
- name: Installation tests
# @see https://developer.adobe.com/commerce/marketplace/guides/sellers/installation-and-varnish-tests/#what-is-being-checked
uses: nick-fields/retry@v3
with:
timeout_minutes: 5
max_attempts: 3
shell: bash
command: |
ddev magento module:enable ${{ env.EXTENSION_NAME }}
ddev magento setup:upgrade
ddev magento setup:static-content:deploy -f
ddev magento deploy:mode:set production
ddev magento indexer:reindex
- name: Prepare for Varnish tests
run: |
ddev magento config:set system/full_page_cache/caching_application 2
ddev magento setup:performance:generate-fixtures ./varnish-profile.xml
- name: Disable some extensions
if: contains(fromJson('["2.4.6","2.4.7"]'),matrix.m2-version)
run: |
ddev magento maintenance:enable
ddev magento module:disable --clear-static-content Magento_AdminAdobeImsTwoFactorAuth
ddev magento setup:static-content:deploy -f
ddev magento maintenance:disable
- name: Disable some extensions for 2.4
if: startsWith(matrix.m2-version, '2.4')
run: |
ddev magento maintenance:enable
ddev magento module:disable --clear-static-content Magento_TwoFactorAuth
ddev magento cache:clean
ddev magento cache:flush
ddev magento setup:static-content:deploy -f
ddev magento maintenance:disable
- name: Varnish MISS and HIT test
run: |
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-1.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 1 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-1.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 2 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-2.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 3 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-2.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 4 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-3.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 5 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-3.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 6 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/category-1.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 7 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/category-1.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 8 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/category-2.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 9 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/category-2.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 10 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 11 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 12 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
- name: Varnish product update test
run: |
cp .ddev/okaeli-add-on/magento2/custom_scripts/update-product-price.sh update-product-price.sh
chmod +x update-product-price.sh
ddev exec ./update-product-price.sh https://${{ env.M2_VERSION_CODE }}.ddev.site product_dynamic_1
ddev exec ./update-product-price.sh https://${{ env.M2_VERSION_CODE }}.ddev.site product_dynamic_2
ddev exec ./update-product-price.sh https://${{ env.M2_VERSION_CODE }}.ddev.site product_dynamic_3
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-1.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 1 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-1.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 2 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-2.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 3 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-2.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 4 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-3.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo $VERIF
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site/simple-product-3.html | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 5 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
- name: Varnish FPC clean test
run: |
ddev magento cache:clean full_page
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:MISS"* ]]
then
echo "Test 1 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi
VERIF=$(ddev exec curl -sSL -D - https://${{ env.M2_VERSION_CODE }}.ddev.site | grep -E "^x-eqp-cache:" | sed 's/ //g')
if [[ $VERIF != *"x-eqp-cache:HIT"* ]]
then
echo "Test 2 failed"
echo "Bad Varnish x-eqp-cache : ${VERIF}"
exit 1
fi