Bump docker/metadata-action from 5.0.0 to 5.2.0 #888
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, workflow_dispatch ] | |
env: | |
PACKAGE_NAME: 'oxid-esales/unzer' | |
MODULE_PATH: 'osc/unzer' | |
SONARCLOUD_ORGANIZATION: 'oxid-esales' | |
SONARCLOUD_PROJECT_KEY: 'OXID-eSales_unzer-module' | |
jobs: | |
install_shop_with_module: | |
strategy: | |
matrix: | |
php: [ '7.4' ] | |
runs-on: ubuntu-latest | |
steps: | |
- 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-6.5.x --single-branch source | |
- name: Cache current installation | |
uses: actions/cache@v3 | |
with: | |
path: | | |
./* | |
key: development-${{ matrix.php }}-${{ github.run_number }}-${{ github.run_attempt }} | |
- 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/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: | | |
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 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: 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@v3 | |
with: | |
name: Configs-${{ matrix.php }} | |
path: | | |
docker-compose.yml | |
source/composer.json | |
source/composer.lock | |
source/config.inc.php | |
data/php/logs/error_log.txt | |
styles: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php: [ '8.0' ] | |
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 | |
- name: Install module dependencies | |
run: | | |
cd source/test-module | |
composer install | |
- 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: Run phpcs | |
if: always() | |
run: | | |
cd source/test-module | |
composer phpcs | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: StylesLog-${{ matrix.php }} | |
path: | | |
source/test-module/logs/psalm.sonarqube.json | |
unit_tests: | |
strategy: | |
matrix: | |
php: [ '7.4' ] | |
needs: [ install_shop_with_module ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Load current installation from cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
./* | |
key: development-${{ matrix.php }}-${{ github.run_number }}-${{ github.run_attempt }} | |
restore-keys: | | |
development-${{ matrix.php }}-${{ github.run_number }}-${{ github.run_attempt }} | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USER }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- 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-text \ | |
--log-junit=/var/www/phpunit.xml \ | |
AllTestsUnit | |
- name: Stop containers | |
if: always() | |
run: | | |
docker-compose down | |
sleep 2 | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: TestsLog-${{ matrix.php }} | |
path: | | |
source/coverage.xml | |
source/phpunit.xml | |
codeception_tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [ '7.4' ] | |
group: | |
[ | |
'PaymentAvailableTest', | |
'FirstGroup', | |
'SecondGroup', | |
'ThirdGroup', | |
] | |
needs: [ install_shop_with_module ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Load current installation from cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
./* | |
key: development-${{ matrix.php }}-${{ github.run_number }}-${{ github.run_attempt }} | |
restore-keys: | | |
development-${{ matrix.php }}-${{ github.run_number }}-${{ github.run_attempt }} | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USER }} | |
password: ${{ secrets.DOCKER_HUB_TOKEN }} | |
- 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 -g ${{ matrix.group }} | |
- name: Stop containers | |
if: always() | |
run: | | |
docker-compose down | |
sleep 2 | |
- name: Upload log artifact | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: CodeceptionTestsLog-${{ matrix.php }} | |
path: | | |
source/vendor/${{ env.PACKAGE_NAME }}/Tests/Codeception/_output/ | |
source/source/log/oxideshop.log | |
source/source/log/unzer/ | |
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@v3 | |
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 | |
continue-on-error: true | |
uses: actions/download-artifact@v3 | |
with: | |
name: StylesLog-8.0 | |
path: ./styles/ | |
- 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.psalm.reportPaths=styles/psalm.sonarqube.json | |
-Dsonar.cpd.php.minimumTokens=25 | |
-Dsonar.cpd.php.minimumLines=5 |