diff --git a/.github/workflows/_internal_check_extension.yaml b/.github/workflows/_internal_check_extension.yaml
index 44bb754..92d6a49 100644
--- a/.github/workflows/_internal_check_extension.yaml
+++ b/.github/workflows/_internal_check_extension.yaml
@@ -30,6 +30,7 @@ jobs:
- uses: ./supported-version
with:
kind: currently-supported
+ include_services: true
id: supported-version
check-workflow:
needs: compute_matrix
diff --git a/.github/workflows/check-extension.yaml b/.github/workflows/check-extension.yaml
index b463b0c..b61cee1 100644
--- a/.github/workflows/check-extension.yaml
+++ b/.github/workflows/check-extension.yaml
@@ -188,4 +188,93 @@ jobs:
shell: bash
run: |
./vendor/bin/phpcs --standard=Magento2 --ignore=*vendor/* .
- working-directory: ${{ inputs.path }}
\ No newline at end of file
+ working-directory: ${{ inputs.path }}
+
+ integration_test:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix: ${{ fromJSON(inputs.matrix) }}
+ fail-fast: ${{ inputs.fail-fast }}
+ services: ${{ matrix.services }}
+ steps:
+ - uses: actions/checkout@v6
+
+ - uses: graycoreio/github-actions-magento2/setup-magento@main
+ id: setup-magento
+ with:
+ php-version: ${{ matrix.php }}
+ tools: composer:v${{ matrix.composer }}
+ mode: extension
+ magento_version: ${{ matrix.magento }}
+ magento_repository: ${{ inputs.magento_repository }}
+ composer_auth: ${{ secrets.composer_auth }}
+
+ - uses: graycoreio/github-actions-magento2/cache-magento@main
+ with:
+ mode: extension
+ composer_cache_key: ${{ inputs.composer_cache_key }}
+
+ - name: Add extension repository
+ working-directory: ${{ steps.setup-magento.outputs.path }}
+ run: composer config repositories.local path ${{ github.workspace }}/${{ inputs.path }}
+
+ - name: Get package name
+ id: package
+ run: echo "name=$(jq -r .name ${{ github.workspace }}/${{ inputs.path }}/composer.json)" >> $GITHUB_OUTPUT
+
+ - name: Require extension
+ working-directory: ${{ steps.setup-magento.outputs.path }}
+ run: composer require "${{ steps.package.outputs.name }}:@dev" --no-install
+ env:
+ COMPOSER_AUTH: ${{ secrets.composer_auth }}
+
+ - name: Composer install
+ working-directory: ${{ steps.setup-magento.outputs.path }}
+ run: composer install
+ env:
+ COMPOSER_AUTH: ${{ secrets.composer_auth }}
+
+ - uses: graycoreio/github-actions-magento2/get-magento-version@main
+ id: magento-version
+ with:
+ working-directory: ${{ steps.setup-magento.outputs.path }}
+
+ - name: Replace Configuration Settings for env
+ working-directory: ${{ steps.setup-magento.outputs.path }}/dev/tests/integration
+ run: |
+ sed -i "s/'db-host' => 'localhost'/'db-host' => '127.0.0.1'/" etc/install-config-mysql.php.dist
+ sed -i "s/'db-user' => 'root'/'db-user' => 'user'/" etc/install-config-mysql.php.dist
+ sed -i "s/'db-password' => '123123q'/'db-password' => 'password'/" etc/install-config-mysql.php.dist
+ sed -i "s/'elasticsearch-host' => 'localhost'/'elasticsearch-host' => '127.0.0.1'/" etc/install-config-mysql.php.dist
+ sed -i "s/'amqp-host' => 'localhost'/'amqp-host' => '127.0.0.1'/" etc/install-config-mysql.php.dist
+
+ - name: Enable log-bin-trust-function-creators
+ run: |
+ mysql -h127.0.0.1 -uroot -prootpassword -e "SET GLOBAL log_bin_trust_function_creators = 1;"
+
+ - name: Configure phpunit.xml.dist
+ working-directory: ${{ steps.setup-magento.outputs.path }}
+ run: |
+ ## Add the testsuite
+ cat > /tmp/testsuite.xml << 'EOF'
+
+ ../../../vendor/${{ steps.package.outputs.name }}/Test/Integration
+
+ EOF
+ sed -i '//r /tmp/testsuite.xml' dev/tests/integration/phpunit.xml.dist
+
+ ## Disable allure (See https://github.com/magento/magento2/issues/36702 )
+ ## (╯°□°)╯︵ ┻━┻
+ sed -i '//,/<\/extensions>/d' dev/tests/integration/phpunit.xml.dist
+
+ - name: Run Integration Tests
+ working-directory: ${{ steps.setup-magento.outputs.path }}/dev/tests/integration
+ run: ../../../vendor/bin/phpunit -c phpunit.xml.dist --testsuite Extension_Integration_Tests
+
+ - name: Upload test sandbox dir
+ uses: actions/upload-artifact@v4
+ if: failure()
+ with:
+ name: sandbox-data-${{ steps.magento-version.outputs.version }}
+ path: ${{ steps.setup-magento.outputs.path }}/dev/tests/integration/tmp/sandbox-*
+ retention-days: 3
\ No newline at end of file