Release v1.1.8 #805
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: Development | |
on: [ push, pull_request, workflow_dispatch ] | |
env: | |
PACKAGE_NAME: 'oxid-solution-catalysts/adyen-module' | |
MODULE_PATH: 'osc/adyen' | |
SONARCLOUD_ORGANIZATION: 'oxid-esales' | |
SONARCLOUD_PROJECT_KEY: 'OXID-eSales_adyen-module' | |
jobs: | |
install_shop_with_module: | |
strategy: | |
matrix: | |
php: [ '7.4', '8.0', '8.1' ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone testing environment v3.0.0 | |
run: git clone https://github.com/OXID-eSales/docker-eshop-sdk.git . | |
- name: Clone the shop | |
run: git clone --depth 1 https://github.com/OXID-eSales/oxideshop_ce.git --branch b-6.5.x --single-branch source | |
- name: Cache current installation | |
uses: actions/cache@v4 | |
with: | |
path: | | |
./* | |
key: moduleDevelopmentInstallation-${{ matrix.php }}-${{ github.sha }} | |
- name: Prepare container configuration | |
run: | | |
make setup | |
make addbasicservices | |
make file=services/selenium-chrome.yml addservice | |
perl -pi\ | |
-e "s#PHP_VERSION=.*#PHP_VERSION='${{ matrix.php }}'#g;"\ | |
.env | |
perl -pi\ | |
-e 's#display_errors =.*#display_errors = false#g;'\ | |
-e 'print "xdebug.max_nesting_level=1000\nxdebug.mode=coverage\n\n"'\ | |
containers/php-fpm/custom.ini | |
perl -pi\ | |
-e 's#/var/www/#/var/www/source/#g;'\ | |
containers/httpd/project.conf | |
- name: Prepare shop configuration | |
run: | | |
cp source/source/config.inc.php.dist source/source/config.inc.php | |
sed -i "1s+^+SetEnvIf Authorization "\(.*\)" HTTP_AUTHORIZATION=\$1\n\n+" source/source/.htaccess | |
sed -i -e 's/<dbHost>/mysql/'\ | |
-e 's/<dbUser>/root/'\ | |
-e 's/<dbName>/example/'\ | |
-e 's/<dbPwd>/root/'\ | |
-e 's/<dbPort>/3306/'\ | |
-e 's/<sShopURL>/https:\/\/localhost.local\//'\ | |
-e 's/<sShopDir>/\/var\/www\/source\//'\ | |
-e 's/<sCompileDir>/\/var\/www\/source\/tmp\//'\ | |
source/source/config.inc.php | |
- name: Start containers | |
run: | | |
make up | |
sleep 2 | |
- name: Checkout current module | |
uses: actions/checkout@v4 | |
with: | |
path: source/test-module | |
- name: Install module | |
run: | | |
docker-compose exec -T \ | |
php composer config repositories.${{ env.PACKAGE_NAME }} \ | |
--json '{"type":"path", "url":"./test-module", "options": {"symlink": true}}' | |
docker-compose exec -T \ | |
php composer require ${{ env.PACKAGE_NAME }}:* --no-interaction --no-update | |
- name: Install dependencies and reset shop | |
run: | | |
docker-compose exec -T php composer update --no-interaction | |
docker-compose exec -T php composer require vlucas/phpdotenv --no-interaction --dev | |
docker-compose exec -T php php vendor/bin/reset-shop | |
- name: Put module settings | |
continue-on-error: true | |
run: | | |
mkdir -p source/var/configuration/environment/ | |
echo "${{ secrets.MODULE_SETTINGS }}" > source/var/configuration/environment/1.yaml | |
docker-compose exec -T php php bin/oe-console oe:module:apply-configuration | |
- name: Create .env-file | |
continue-on-error: true | |
working-directory: source/test-module/tests | |
run: | | |
echo "${{ secrets.DOTENV }}" > .env | |
- name: Stop containers | |
run: | | |
docker-compose down | |
sleep 2 | |
styles: | |
strategy: | |
matrix: | |
php: [ '8.0' ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout current module | |
uses: actions/checkout@v4 | |
with: | |
path: source/test-module | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
coverage: xdebug | |
extensions: gd, zip | |
- name: Install module dependencies | |
id: dependencies | |
working-directory: source/test-module | |
run: composer install | |
- name: Run phpcs | |
id: phpcs | |
if: always() | |
working-directory: source/test-module | |
run: composer phpcs | |
- name: Run phpstan | |
id: phpstan | |
if: always() | |
working-directory: source/test-module | |
run: composer phpstan-report || composer phpstan | |
- name: Run phpmd | |
id: phpmd | |
if: always() | |
working-directory: source/test-module | |
run: composer phpmd-report || composer phpmd | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: StylesLog-${{ matrix.php }} | |
path: | | |
source/test-module/phpstan.report.json | |
source/test-module/phpmd.report.json | |
unit_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '7.4', '8.0', '8.1' ] | |
needs: [ install_shop_with_module ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Load current installation from cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
./* | |
key: moduleDevelopmentInstallation-${{ matrix.php }}-${{ github.sha }} | |
restore-keys: | | |
moduleDevelopmentInstallation-${{ matrix.php }}-${{ github.sha }} | |
- name: Start containers | |
run: | | |
make up | |
sleep 2 | |
- name: Run tests | |
run: | | |
docker-compose exec -T \ | |
-e PARTIAL_MODULE_PATHS=${{ env.MODULE_PATH }} \ | |
-e ACTIVATE_ALL_MODULES=1 \ | |
-e RUN_TESTS_FOR_SHOP=0 \ | |
-e RUN_TESTS_FOR_MODULES=0 \ | |
-e XDEBUG_MODE=coverage \ | |
-e ADDITIONAL_TEST_PATHS='/var/www/vendor/${{ env.PACKAGE_NAME }}/tests' \ | |
php php vendor/bin/runtests \ | |
--coverage-clover=/var/www/coverage.xml \ | |
--coverage-html=/var/www/coverage \ | |
--coverage-text \ | |
--log-junit=/var/www/phpunit.xml \ | |
AllTestsUnit | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: TestsLog-${{ matrix.php }} | |
path: | | |
source/coverage.xml | |
source/phpunit.xml | |
codeception_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '7.4', '8.0', '8.1' ] | |
group: | |
- 'osc_adyen' | |
needs: [ install_shop_with_module ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Load current installation from cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
./* | |
key: moduleDevelopmentInstallation-${{ matrix.php }}-${{ github.sha }} | |
restore-keys: | | |
moduleDevelopmentInstallation-${{ matrix.php }}-${{ github.sha }} | |
- name: Start containers | |
run: | | |
make up | |
sleep 2 | |
- name: Install codeception dependencies | |
run: | | |
docker-compose exec -T php composer require codeception/module-rest:^1.4.2 --dev --no-update | |
docker-compose exec -T php composer require codeception/module-phpbrowser:^1.0.2 --dev --no-update | |
docker-compose exec -T php composer update | |
- name: Run tests | |
run: | | |
docker-compose exec -T \ | |
-e PARTIAL_MODULE_PATHS=${{ env.MODULE_PATH }} \ | |
-e ACTIVATE_ALL_MODULES=1 \ | |
-e RUN_TESTS_FOR_SHOP=0 \ | |
-e RUN_TESTS_FOR_MODULES=0 \ | |
-e ADDITIONAL_TEST_PATHS='/var/www/vendor/${{ env.PACKAGE_NAME }}/tests' \ | |
php php vendor/bin/runtests-codeception --group=${{ matrix.group }} --steps --debug | |
- name: Stop containers | |
if: always() | |
run: | | |
docker-compose down | |
sleep 2 | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CodeceptionTestsLog-${{ matrix.php }} | |
path: | | |
source/vendor/${{ env.PACKAGE_NAME }}/tests/Codeception/_output/ | |
source/source/log/oxideshop.log | |
source/data/php/logs/error_log.txt | |
sonarcloud: | |
needs: [ styles, unit_tests ] | |
if: always() | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout current module | |
uses: actions/checkout@v4 | |
- name: Download phpunit artifacts | |
continue-on-error: true | |
uses: actions/download-artifact@v4 | |
with: | |
name: TestsLog-7.4 | |
path: ./tests/ | |
- name: Fix paths in unit logs | |
continue-on-error: true | |
run: | | |
sed -i 's+/var/www/test-module/++' tests/coverage.xml | |
sed -i 's+/var/www/test-module/++' tests/phpunit.xml | |
- name: Download styles artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: StylesLog-8.0 | |
path: ./styles/ | |
- name: Fix paths in styles logs | |
continue-on-error: true | |
run: | | |
sed -i 's+\/home\/runner\/work\/.*?\/.*?\/source\/test-module\/++' styles/phpstan.report.json | |
- name: SonarCloud Scan | |
uses: sonarsource/sonarcloud-github-action@master | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
with: | |
args: > | |
-Dsonar.organization=${{ env.SONARCLOUD_ORGANIZATION }} | |
-Dsonar.projectKey=${{ env.SONARCLOUD_PROJECT_KEY }} | |
-Dsonar.sources=src | |
-Dsonar.tests=tests | |
-Dsonar.sourceEncoding=UTF-8 | |
-Dsonar.php.coverage.reportPaths=tests/coverage.xml | |
-Dsonar.php.phpstan.reportPaths=styles/phpstan.report.json | |
-Dsonar.cpd.php.minimumTokens=25 | |
-Dsonar.cpd.php.minimumLines=5 |