ci(*): Update ci matrixes #48
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: 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 |