This repository has been archived by the owner on Jul 5, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
31299c5
commit 4d5984a
Showing
1 changed file
with
126 additions
and
126 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,133 +1,133 @@ | ||
name: Mautic Plugin tests | ||
|
||
on: | ||
push: | ||
branches: | ||
- main # Main branch | ||
- '[0-9]+\.[0-9]+' | ||
pull_request: | ||
push: | ||
branches: | ||
- main # Main branch | ||
- '[0-9]+\.[0-9]+' | ||
pull_request: | ||
|
||
env: | ||
PLUGIN_DIR: plugins/SparkpostBundle # Same as extra.install-directory-name in composer.json | ||
PLUGIN_DIR: plugins/SparkpostBundle # Same as extra.install-directory-name in composer.json | ||
|
||
jobs: | ||
phpunit: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
php-versions: ['8.0'] # The supported PHP versions | ||
db-types: ['mysql'] # can be: ['mysql', 'mariadb'] but not necessary for this plugin that does not add any DB schema | ||
mautic-versions: ['5.x'] # The supported Mautic versions | ||
|
||
name: Tests on PHP ${{ matrix.php-versions }}, ${{ matrix.db-types }}, Mautic ${{ matrix.mautic-versions }} | ||
|
||
services: | ||
database: | ||
image: ${{ matrix.db-types == 'mysql' && 'mysql:8.0' || 'mariadb:10.3' }} | ||
env: | ||
MYSQL_ALLOW_EMPTY_PASSWORD: yes | ||
MYSQL_DATABASE: mautictest | ||
ports: | ||
- 3306 | ||
options: >- | ||
--shm-size=2gb | ||
--name=${{ matrix.db-types }} | ||
--tmpfs=/var/lib/mysql | ||
--health-cmd="mysqladmin ping" | ||
--health-interval=10s | ||
--health-timeout=5s | ||
--health-retries=3 | ||
steps: | ||
- name: Checkout Mautic 4 | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: mautic/mautic | ||
ref: ${{ matrix.mautic-versions }} | ||
|
||
- name: Checkout this plugin | ||
uses: actions/checkout@v3 | ||
with: | ||
path: ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Setup PHP, with composer and extensions | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php-versions }} | ||
ini-values: -dpcov.enabled=0, pcov.directory=." | ||
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql, pdo_mysql | ||
coverage: pcov | ||
|
||
- name: add MySQL config file | ||
run: | | ||
mysqldump --version | ||
mysqldump --print-defaults | ||
cp .github/ci-files/.my.cnf ~/.my.cnf | ||
mysqldump --print-defaults | ||
- name: Set SYMFONY_ENV to test | ||
run: | | ||
echo "SYMFONY_ENV=test" >> $GITHUB_ENV | ||
echo "MAUTIC_ENV=test" >> $GITHUB_ENV | ||
- name: Get composer cache directory | ||
id: composer-cache | ||
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | ||
|
||
- name: Cache composer dependencies | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | ||
restore-keys: ${{ runner.os }}-composer- | ||
|
||
- name: Install Composer dependencies | ||
run: composer install | ||
|
||
- name: Install Mautic | ||
env: | ||
DB_PORT: ${{ job.services.database.ports[3306] }} | ||
run: | | ||
cp ./.github/ci-files/local.php ./app/config/local.php | ||
php bin/console mautic:install --force http://localhost | ||
- name: Install Plugins | ||
env: | ||
DB_PORT: ${{ job.services.database.ports[3306] }} | ||
run: php bin/console mautic:plugins:install --env=dev | ||
|
||
- name: Run Code Style check | ||
run: bin/php-cs-fixer fix ${{ env.PLUGIN_DIR }} --config=.php-cs-fixer.php -v --dry-run --show-progress=dots --diff | ||
|
||
- name: PHPSTAN | ||
run: composer phpstan -- ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Rector | ||
run: composer rector -- --dry-run --no-progress-bar ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Twig Lint | ||
run: bin/console lint:twig ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Run PHPUNIT tests | ||
env: | ||
DB_PORT: ${{ job.services.database.ports[3306] }} | ||
run: XDEBUG_MODE=coverage APP_DEBUG=0 php -dpcov.enabled=1 -dpcov.directory=. -dpcov.exclude="~tests|themes|vendor~" bin/phpunit -d memory_limit=1G --bootstrap vendor/autoload.php --configuration ${{ env.PLUGIN_DIR }}/phpunit.xml --coverage-clover=${{ env.PLUGIN_DIR }}/coverage.xml --coverage-text | ||
|
||
- name: Coverage report | ||
run: cat ${{ env.PLUGIN_DIR }}/coverage.xml | ||
|
||
- name: Upload coverage report | ||
if: ${{ matrix.php-versions == '8.0' && matrix.db-types == 'mysql' && matrix.mautic-versions == '4.4' }} # upload just once, change for your matrix | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
fail_ci_if_error: true | ||
working-directory: ${{ env.PLUGIN_DIR }} | ||
verbose: true | ||
|
||
- name: Upload logs as artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: mautic-logs | ||
path: var/logs/ | ||
phpunit: | ||
runs-on: ubuntu-latest | ||
|
||
strategy: | ||
matrix: | ||
php-versions: ['8.0'] # The supported PHP versions | ||
db-types: ['mysql'] # can be: ['mysql', 'mariadb'] but not necessary for this plugin that does not add any DB schema | ||
mautic-versions: ['5.x'] # The supported Mautic versions | ||
|
||
name: Tests on PHP ${{ matrix.php-versions }}, ${{ matrix.db-types }}, Mautic ${{ matrix.mautic-versions }} | ||
|
||
services: | ||
database: | ||
image: ${{ matrix.db-types == 'mysql' && 'mysql:8.0' || 'mariadb:10.3' }} | ||
env: | ||
MYSQL_ALLOW_EMPTY_PASSWORD: yes | ||
MYSQL_DATABASE: mautictest | ||
ports: | ||
- 3306 | ||
options: >- | ||
--shm-size=2gb | ||
--name=${{ matrix.db-types }} | ||
--tmpfs=/var/lib/mysql | ||
--health-cmd="mysqladmin ping" | ||
--health-interval=10s | ||
--health-timeout=5s | ||
--health-retries=3 | ||
steps: | ||
- name: Checkout Mautic 4 | ||
uses: actions/checkout@v3 | ||
with: | ||
repository: mautic/mautic | ||
ref: ${{ matrix.mautic-versions }} | ||
|
||
- name: Checkout this plugin | ||
uses: actions/checkout@v3 | ||
with: | ||
path: ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Setup PHP, with composer and extensions | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: ${{ matrix.php-versions }} | ||
ini-values: -dpcov.enabled=0, pcov.directory=." | ||
extensions: mbstring, xml, ctype, iconv, intl, pdo_sqlite, mysql, pdo_mysql | ||
coverage: pcov | ||
|
||
- name: add MySQL config file | ||
run: | | ||
mysqldump --version | ||
mysqldump --print-defaults | ||
cp .github/ci-files/.my.cnf ~/.my.cnf | ||
mysqldump --print-defaults | ||
- name: Set SYMFONY_ENV to test | ||
run: | | ||
echo "SYMFONY_ENV=test" >> $GITHUB_ENV | ||
echo "MAUTIC_ENV=test" >> $GITHUB_ENV | ||
- name: Get composer cache directory | ||
id: composer-cache | ||
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | ||
|
||
- name: Cache composer dependencies | ||
uses: actions/cache@v3 | ||
with: | ||
path: ${{ steps.composer-cache.outputs.dir }} | ||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | ||
restore-keys: ${{ runner.os }}-composer- | ||
|
||
- name: Install Composer dependencies | ||
run: composer install | ||
|
||
- name: Install Mautic | ||
env: | ||
DB_PORT: ${{ job.services.database.ports[3306] }} | ||
run: | | ||
cp ./.github/ci-files/local.php ./app/config/local.php | ||
php bin/console mautic:install --force http://localhost | ||
- name: Install Plugins | ||
env: | ||
DB_PORT: ${{ job.services.database.ports[3306] }} | ||
run: php bin/console mautic:plugins:install --env=dev | ||
|
||
- name: Run Code Style check | ||
run: bin/php-cs-fixer fix ${{ env.PLUGIN_DIR }} --config=.php-cs-fixer.php -v --dry-run --show-progress=dots --diff | ||
|
||
- name: PHPSTAN | ||
run: composer phpstan -- ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Rector | ||
run: composer rector -- --dry-run --no-progress-bar ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Twig Lint | ||
run: bin/console lint:twig ${{ env.PLUGIN_DIR }} | ||
|
||
- name: Run PHPUNIT tests | ||
env: | ||
DB_PORT: ${{ job.services.database.ports[3306] }} | ||
run: XDEBUG_MODE=coverage APP_DEBUG=0 php -dpcov.enabled=1 -dpcov.directory=. -dpcov.exclude="~tests|themes|vendor~" bin/phpunit -d memory_limit=1G --bootstrap vendor/autoload.php --configuration ${{ env.PLUGIN_DIR }}/phpunit.xml --coverage-clover=${{ env.PLUGIN_DIR }}/coverage.xml --coverage-text | ||
|
||
- name: Coverage report | ||
run: cat ${{ env.PLUGIN_DIR }}/coverage.xml | ||
|
||
- name: Upload coverage report | ||
if: ${{ matrix.php-versions == '8.0' && matrix.db-types == 'mysql' && matrix.mautic-versions == '4.4' }} # upload just once, change for your matrix | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
fail_ci_if_error: true | ||
working-directory: ${{ env.PLUGIN_DIR }} | ||
verbose: true | ||
|
||
- name: Upload logs as artifacts | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: mautic-logs | ||
path: var/logs/ |