enable submit-button if something is wrong ... #2042
Workflow file for this run
This file contains hidden or 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 ] | |
| env: | |
| PACKAGE_NAME: 'oxid-solution-catalysts/paypal-module' | |
| CLIENT_PACKAGE_NAME: 'oxid-solution-catalysts/paypal-client' | |
| CLIENT_REPO_NAME: 'https://github.com/OXID-eSales/paypal-client.git' | |
| MODULE_PATH: 'osc/paypal' | |
| SONARCLOUD_ORGANIZATION: 'oxid-esales' | |
| SONARCLOUD_PROJECT_KEY: 'OXID-eSales_module-paypal_checkout' | |
| PHP_VERSION: '8.0' | |
| MYSQL_VERSION: '5.7' | |
| TEMPLATE_ENGINE: 'twig' | |
| jobs: | |
| install_shop_with_module: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Print run parameters | |
| run: | | |
| echo "Running job with:\ | |
| PHP version: ${{ env.PHP_VERSION }}\ | |
| MySQL version: ${{ env.MYSQL_VERSION }}\ | |
| Template engine: ${{ env.TEMPLATE_ENGINE }}\ | |
| Trigger event: ${{ github.event_name }}" | |
| - name: Cleanup workspace | |
| run: | | |
| ls -la ./ | |
| sudo rm -rf ./* || true | |
| sudo rm -rf ./.??* || true | |
| ls -la ./ | |
| - name: Clone testing environment | |
| 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-7.0.x --single-branch source | |
| - name: Cache current installation | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ./* | |
| key: installation-${{ env.PHP_VERSION }}-${{ env.MYSQL_VERSION }}-${{ env.TEMPLATE_ENGINE }}-${{ github.run_number }}-${{ github.run_attempt }} | |
| - name: Prepare container configuration | |
| run: | | |
| make setup | |
| make addbasicservices | |
| perl -pi\ | |
| -e 's#PHP_VERSION=.*#PHP_VERSION=${{ env.PHP_VERSION }}#g;'\ | |
| -e "s#MYSQL_VERSION=.*#MYSQL_VERSION=${{ env.MYSQL_VERSION }}#g;"\ | |
| .env | |
| perl -pi\ | |
| -e 's#display_errors =.*#display_errors = false#g;'\ | |
| -e 's#error_reporting = .*#error_reporting = E_ALL ^ E_WARNING ^ E_DEPRECATED#g;'\ | |
| -e 'print "xdebug.max_nesting_level=1000\nxdebug.mode=coverage\n\n"'\ | |
| containers/php/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:\/\/oxideshop.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@v3 | |
| 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 demodata | |
| run: | | |
| docker compose exec -T \ | |
| php composer config repositories.oxid-esales/oxideshop-demodata-ce \ | |
| --json '{"type":"git", "url":"https://github.com/OXID-eSales/oxideshop_demodata_ce"}' | |
| docker compose exec -T php composer require oxid-esales/oxideshop-demodata-ce:dev-master --no-update | |
| docker compose exec -T php composer require oxid-esales/apex-theme:dev-b-7.0.x --no-update | |
| - name: Install dependencies and reset shop | |
| run: | | |
| docker compose exec -T php composer update --no-interaction | |
| docker compose exec -T php bin/oe-console oe:database:reset \ | |
| --db-host=mysql --db-port=3306 --db-name=example --db-user=root --db-password=root --force | |
| docker compose exec -T php bin/oe-console oe:setup:demodata | |
| docker compose exec -T php bin/oe-console oe:theme:activate apex | |
| docker compose exec -T php bin/oe-console oe:module:activate osc_paypal | |
| ls -la | |
| ls -la source | |
| - name: Put module settings | |
| continue-on-error: true | |
| run: | | |
| mkdir -p source/var/configuration/environment/shops/1/modules | |
| echo "${{ secrets.MODULE_SETTINGS_OXID7 }}" > source/var/configuration/environment/shops/1/modules/osc_paypal.yaml | |
| echo "${{ secrets.MODULE_ENV }}" > source/vendor/${{ env.PACKAGE_NAME }}/tests/.env | |
| docker compose exec -T php php bin/oe-console oe:module:activate osc_paypal | |
| - name: Show docker log | |
| if: always() | |
| run: | | |
| docker compose logs | |
| - name: Stop containers | |
| if: always() | |
| run: | | |
| docker compose down | |
| sleep 2 | |
| - name: Upload configuration artifacts | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: Configs-${{ env.PHP_VERSION }}-${{ env.MYSQL_VERSION }}-${{ env.TEMPLATE_ENGINE }} | |
| path: | | |
| docker-compose.yml | |
| source/composer.json | |
| source/composer.lock | |
| source/config.inc.php | |
| source/var/configuration/shops/1/modules/osc-unzer.yaml | |
| data/php/logs/error_log.txt | |
| styles: | |
| strategy: | |
| matrix: | |
| php: [ '8.0' ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout current module | |
| uses: actions/checkout@v4 | |
| with: | |
| path: source/test-module | |
| fetch-depth: 0 # Fetch all commits for accurate diff | |
| - 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: Codestyle check of the affected files (phpcs, phpmd, phpstan) | |
| id: phpcs | |
| working-directory: source/test-module | |
| run: composer style:commit # Runs oll style checks | |
| - name: Upload log artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: StylesLog-${{ matrix.php }} | |
| path: | | |
| source/test-module/tests/reports/phpstan.report.json | |
| source/test-module/tests/reports/phpmd.report.json | |
| unit_tests: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: [ '8.0', '8.1', '8.2' ] | |
| needs: [ install_shop_with_module ] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Load current installation from cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ./* | |
| key: installation-${{ env.PHP_VERSION }}-${{ env.MYSQL_VERSION }}-${{ env.TEMPLATE_ENGINE }}-${{ github.run_number }}-${{ github.run_attempt }} | |
| restore-keys: | | |
| installation-${{ env.PHP_VERSION }}-${{ env.MYSQL_VERSION }}-${{ env.TEMPLATE_ENGINE }}-${{ github.run_number }}-${{ github.run_attempt }} | |
| - name: Start containers | |
| run: | | |
| make up | |
| sleep 2 | |
| - name: Install testing dependencies | |
| run: | | |
| docker compose exec -T php composer require symfony/dotenv --no-update --dev | |
| docker compose exec -T php composer update | |
| - name: Run tests | |
| run: | | |
| docker compose exec -T -e XDEBUG_MODE=coverage php vendor/bin/phpunit \ | |
| -c /var/www/test-module/tests/phpunit.xml \ | |
| --bootstrap=/var/www/source/bootstrap.php | |
| - name: Upload log artifact | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: TestsLog-${{ matrix.php }} | |
| path: | | |
| source/coverage.xml | |
| source/phpunit.xml | |
| source/source/log/oxideshop.log | |
| source/data/php/logs/error_log.txt |