CHANGELOG #1845
Workflow file for this run
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 ] | |
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' | |
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 . && git reset --hard v3.0.0 | |
- 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>/http:\/\/localhost.local\//'\ | |
-e 's/<sShopDir>/\/var\/www\/source\//'\ | |
-e 's/<sCompileDir>/\/var\/www\/source\/tmp\//'\ | |
source/source/config.inc.php | |
- name: Start containers | |
run: | | |
docker compose up -d | |
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 require symfony/dotenv:* --no-update | |
docker compose exec -T \ | |
php composer require codeception/module-rest:1.4.2 --no-update | |
docker compose exec -T \ | |
php composer require codeception/module-phpbrowser:^1.0.2 --no-update | |
docker compose exec -T \ | |
php composer config repositories.${{ env.CLIENT_PACKAGE_NAME }} git ${{ env.CLIENT_REPO_NAME }} | |
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 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 | |
echo "${{ secrets.MODULE_ENV }}" > source/vendor/${{ env.PACKAGE_NAME }}/tests/.env | |
docker compose exec -T php php bin/oe-console oe:module:apply-configuration | |
- 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: 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: [ '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: | | |
docker compose up -d | |
sleep 2 | |
- name: Run tests | |
run: | | |
docker compose exec -T \ | |
-e PARTIAL_MODULE_PATHS=osc/paypal \ | |
-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/oxid-solution-catalysts/paypal-module/tests' \ | |
php php vendor/bin/runtests \ | |
--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 | |
source/source/log/oxideshop.log | |
cypress_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '7.4', '8.0', '8.1' ] | |
group: | |
- 'oe_moduletemplate' | |
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: Run tests | |
run: | | |
./source/vendor/${{ env.PACKAGE_NAME }}/.github/cypress/cypress.sh --no_make_up=true | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: CodeceptionTestsLog-${{ matrix.php }} | |
path: | | |
source/vendor/${{ env.PACKAGE_NAME }}/tests/e2e/cypress/_generated | |
source/source/log/oxideshop.log | |
source/data/php/logs/error_log.txt |