Skip to content

Release of 6.1.2 (#467) #9

Release of 6.1.2 (#467)

Release of 6.1.2 (#467) #9

Workflow file for this run

name: PHPUnit
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
php_unit:
name: PHPUnit on PS ${{ matrix.prestashop-version }} & PHP ${{ matrix.php-version }}
runs-on: ubuntu-latest
strategy:
matrix:
include:
- php-version: '7.3'
prestashop-version: '1.7.8.11'
- php-version: '8.1'
prestashop-version: '8.2.3'
- php-version: '8.4'
prestashop-version: '9.0.0'
permissions:
contents: read
steps:
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '${{ matrix.php-version }}'
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: '0'
- name: Clone private repository with submodules
uses: actions/checkout@v4
with:
repository: MultiSafepay/docker-prestashop
token: ${{ secrets.GLOBAL_GITHUB_TOKEN }}
path: docker-prestashop
submodules: true
fetch-depth: 0
- name: Checkout branch
run: git fetch --all && git checkout ${{ github.event.pull_request.head.ref }}
working-directory: docker-prestashop/modules/multisafepayofficial
- name: Update environment file
run: |
cp .env.example .env
# Set PHP version based on matrix
sed -i "s/PHP_VERSION=.*/PHP_VERSION=${{ matrix.php-version }}/" .env
# Set PrestaShop version based on matrix with special case for 9.0.0
if [ "${{ matrix.prestashop-version }}" = "9.0.0" ]; then
sed -i "s/PRESTASHOP_VERSION=.*/PRESTASHOP_VERSION=9.0.x/" .env
else
sed -i "s/PRESTASHOP_VERSION=.*/PRESTASHOP_VERSION=${{ matrix.prestashop-version }}/" .env
fi
# Set MySQL version based on PHP version for compatibility
if [ "${{ matrix.php-version }}" = "7.3" ]; then
sed -i "s/MYSQL_VERSION=.*/MYSQL_VERSION=5.7/" .env
else
sed -i "s/MYSQL_VERSION=.*/MYSQL_VERSION=8.4/" .env
fi
echo "Environment file updated for PrestaShop ${{ matrix.prestashop-version }} with PHP ${{ matrix.php-version }}"
cat .env
working-directory: docker-prestashop
- name: Install Composer dependencies
run: composer install
working-directory: docker-prestashop/modules/multisafepayofficial
- name: Run docker compose
run: |
docker compose -f docker-prestashop/docker-compose.yml build --build-arg GITHUB_ACTION="tests" app
docker compose -f docker-prestashop/docker-compose.yml up -d app db
env:
MYSQL_ROOT_PASSWORD: prestashop
MYSQL_DATABASE: prestashop
MYSQL_USER: prestashop
MYSQL_PASSWORD: prestashop
- name: Sleep for 60 seconds to let PrestaShop installation script finish the process
run: sleep 60s
shell: bash
- name: Install MultiSafepay plugin and fix ownerships
run: bin/fixowns && bin/install
working-directory: docker-prestashop
env:
COMPOSE_INTERACTIVE_NO_CLI: 1
- name: Run PHPUnit PrestaShop 1.7.8.x and 8.2.x (without coverage)
if: matrix.prestashop-version == '1.7.8.11' || matrix.prestashop-version == '8.2.3'
run: docker compose exec -T --workdir /var/www/html/modules/multisafepayofficial app vendor/bin/phpunit --testsuite prestashop-unit-tests
working-directory: docker-prestashop
- name: Run PHPUnit on PS 9.0 (with coverage)
if: matrix.prestashop-version == '9.0.0'
run: |
docker compose exec -e XDEBUG_MODE=coverage -T --workdir /var/www/html/modules/multisafepayofficial app vendor/bin/phpunit --testsuite prestashop-unit-tests --coverage-clover=coverage.xml
docker compose cp app:/var/www/html/modules/multisafepayofficial/coverage.xml ./coverage.xml
working-directory: docker-prestashop
- name: Send coverage.xml from PS 9.0.x to codecov
if: matrix.prestashop-version == '9.0.0'
uses: codecov/codecov-action@v5
with:
directory: docker-prestashop
fail_ci_if_error: true
files: ./coverage.xml
flags: unittests
name: codecov-prestashop
token: ${{ secrets.CODECOV_TOKEN }}
verbose: true