Skip to content

fix: reset database for sqlite and windows #2793

fix: reset database for sqlite and windows

fix: reset database for sqlite and windows #2793

Workflow file for this run

name: CI
on:
push:
pull_request:
schedule:
- cron: '0 0 1,16 * *'
jobs:
tests:
name: P:${{ matrix.php }}, S:${{ matrix.symfony }}, D:${{ matrix.database }}, PU:${{ matrix.phpunit || 9 }}${{ matrix.deps == 'lowest' && ' (lowest)' || '' }}${{ matrix.without-dama == 0 && contains(matrix.database, 'sql') && ' (dama)' || '' }}${{ matrix.use-phpunit-extension == 1 && ' (phpunit extension)' || '' }}
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
php: [ 8.3 ]
symfony: [ 7.2.* ]
database: [ sqlite ]
# default values:
# deps: [ highest ]
# without-dama: [ 0 ]
# use-phpunit-extension: [ 0 ]
# phpunit: [ 9 ]
# exclude:
# - {php: 8.1, symfony: 7.1.*}
# - {php: 8.1, symfony: 7.2.*}
# include:
# - {php: 8.3, symfony: '*', database: none}
# - {php: 8.3, symfony: '*', database: mysql|mongo}
# - {php: 8.3, symfony: '*', database: pgsql|mongo}
# - {php: 8.3, symfony: '*', database: pgsql, without-dama: 1}
# - {php: 8.3, symfony: '*', database: sqlite, without-dama: 1}
# - {php: 8.3, symfony: '*', database: sqlite, without-dama: 1, deps: lowest}
# - {php: 8.3, symfony: '*', database: mysql, deps: lowest}
# - {php: 8.3, symfony: '*', database: mysql|mongo, phpunit: 10}
# - {php: 8.3, symfony: '*', database: mysql|mongo, phpunit: 11}
# - {php: 8.3, symfony: '*', database: mysql|mongo, use-phpunit-extension: 1, phpunit: 11}
# - {php: 8.3, symfony: '*', database: mysql|mongo, use-phpunit-extension: 1, phpunit: 11, without-dama: 1}
env:
DATABASE_URL: ${{ contains(matrix.database, 'mysql') && 'mysql://root:root@localhost:3306/foundry?serverVersion=5.7.42' || contains(matrix.database, 'pgsql') && 'postgresql://root:root@localhost:5432/foundry?serverVersion=15' || contains(matrix.database, 'sqlite') && 'sqlite:///%kernel.project_dir%/var/data.db' || '' }}
MONGO_URL: ${{ contains(matrix.database, 'mongo') && 'mongodb://127.0.0.1:27017/dbName?compressors=disabled&gssapiServiceName=mongodb' || '' }}
USE_DAMA_DOCTRINE_TEST_BUNDLE: ${{ matrix.without-dama == 0 && contains(matrix.database, 'sql') && 1 || 0 }}
USE_FOUNDRY_PHPUNIT_EXTENSION: ${{ matrix.use-phpunit-extension || 0 }}
PHPUNIT_VERSION: ${{ matrix.phpunit || 9 }}
services:
postgres:
image: ${{ contains(matrix.database, 'pgsql') && 'postgres:15' || '' }}
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: foundry
ports:
- 5432:5432
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
# mongo:
# image: ${{ contains(matrix.database, 'mongo') && 'mongo:4' || '' }}
# ports:
# - 27017:27017
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
tools: flex
extensions: mongodb, sqlite3, pdo_sqlite
- name: Install dependencies
uses: ramsey/composer-install@v2
with:
dependency-versions: ${{ matrix.deps }}
composer-options: --prefer-dist
env:
SYMFONY_REQUIRE: ${{ matrix.symfony }}
- name: Set up MySQL
if: contains(matrix.database, 'mysql')
run: sudo /etc/init.d/mysql start
- name: Test
run: ./phpunit
shell: bash
# test-reset-database-with-migration:
# name: Test migration - D:${{ matrix.database }} ${{ matrix.use-dama == 1 && ' (dama)' || '' }} ${{ contains(matrix.with-migration-configuration-file, 'transactional') && '(configuration file transactional)' || contains(matrix.with-migration-configuration-file, 'configuration') && '(configuration file)' || '' }}
# runs-on: ubuntu-latest
# strategy:
# fail-fast: false
# matrix:
# database: [ mysql, pgsql, sqlite ]
# use-dama: [ 0, 1 ]
# with-migration-configuration-file:
# - ''
# - 'tests/Fixture/MigrationTests/configs/migration-configuration.php'
# - 'tests/Fixture/MigrationTests/configs/migration-configuration-transactional.php'
# exclude:
# # there is currently a bug with MySQL and transactional migrations
# - database: mysql
# with-migration-configuration-file: 'tests/Fixture/MigrationTests/configs/migration-configuration-transactional.php'
# env:
# DATABASE_URL: ${{ contains(matrix.database, 'mysql') && 'mysql://root:root@localhost:3306/foundry?serverVersion=5.7.42' || contains(matrix.database, 'pgsql') && 'postgresql://root:root@localhost:5432/foundry?serverVersion=15' || 'sqlite:///%kernel.project_dir%/var/data.db' }}
# MONGO_URL: ''
# USE_DAMA_DOCTRINE_TEST_BUNDLE: ${{ matrix.use-dama == 1 && 1 || 0 }}
# WITH_MIGRATION_CONFIGURATION_FILE: ${{ matrix.with-migration-configuration-file }}
# PHPUNIT_VERSION: 9
# services:
# postgres:
# image: ${{ contains(matrix.database, 'pgsql') && 'postgres:15' || '' }}
# env:
# POSTGRES_USER: root
# POSTGRES_PASSWORD: root
# POSTGRES_DB: foundry
# ports:
# - 5432:5432
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
#
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: 8.3
# coverage: none
# tools: flex
#
# - name: Install dependencies
# uses: ramsey/composer-install@v2
# with:
# dependency-versions: highest
# composer-options: --prefer-dist
# env:
# SYMFONY_REQUIRE: 7.1.*
#
# - name: Set up MySQL
# if: contains(matrix.database, 'mysql')
# run: sudo /etc/init.d/mysql start
#
# - name: Set up MySQL
# run: sudo /etc/init.d/mysql start
#
# - name: Test
# run: ./phpunit --testsuite migrate --bootstrap tests/bootstrap-migrate.php
# shell: bash
#
# test-with-paratest:
# name: Test with paratest
# runs-on: ubuntu-latest
# env:
# DATABASE_URL: 'mysql://root:root@localhost:3306/foundry?serverVersion=5.7.42'
# MONGO_URL: ''
# USE_DAMA_DOCTRINE_TEST_BUNDLE: 1
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
#
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: 8.4
# coverage: none
# tools: flex
#
# - name: Install dependencies
# uses: ramsey/composer-install@v2
# with:
# dependency-versions: highest
# composer-options: --prefer-dist
# env:
# SYMFONY_REQUIRE: 7.2.*
#
# - name: Set up MySQL
# run: sudo /etc/init.d/mysql start
#
# - name: Test
# run: vendor/bin/paratest --processes 1 --configuration phpunit-paratest.xml.dist
# shell: bash
#
# code-coverage:
# name: Code Coverage
# runs-on: ubuntu-latest
# env:
# DATABASE_URL: postgresql://root:root@localhost:5432/foundry?serverVersion=15
# MONGO_URL: mongodb://127.0.0.1:27017/dbName?compressors=disabled&gssapiServiceName=mongodb
# USE_DAMA_DOCTRINE_TEST_BUNDLE: 1
# USE_FOUNDRY_PHPUNIT_EXTENSION: 1
# PHPUNIT_VERSION: 11
# services:
# mongo:
# image: mongo:4
# ports:
# - 27017:27017
# postgres:
# image: postgres:15
# env:
# POSTGRES_USER: root
# POSTGRES_PASSWORD: root
# POSTGRES_DB: foundry
# ports:
# - 5432:5432
# options: >-
# --health-cmd pg_isready
# --health-interval 10s
# --health-timeout 5s
# --health-retries 5
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
#
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: 8.2
# coverage: xdebug
# ini-values: xdebug.mode=coverage
#
# - name: Install dependencies
# uses: ramsey/composer-install@v2
# with:
# composer-options: --prefer-dist
#
# - name: Test with coverage
# run: ./phpunit --coverage-text --coverage-clover coverage.xml
# shell: bash
# env:
# SYMFONY_DEPRECATIONS_HELPER: disabled
#
# - name: Publish coverage report to Codecov
# uses: codecov/codecov-action@v3
# with:
# file: ./coverage.xml
#
# composer-validate:
# uses: zenstruck/.github/.github/workflows/php-composer-validate.yml@main
#
# lint-docs:
# name: Lint Documentation
# runs-on: ubuntu-latest
# steps:
# - name: "Checkout code"
# uses: actions/checkout@v3
#
# - name: DOCtor-RST
# uses: docker://oskarstark/doctor-rst
# with:
# args: --short --error-format=github
# env:
# DOCS_DIR: 'docs/'
#
# static-analysis:
# name: Static Analysis
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v3
#
# - name: Setup PHP
# uses: shivammathur/setup-php@v2
# with:
# php-version: 8.3
# coverage: none
#
# - name: Install dependencies
# uses: ramsey/composer-install@v2
# with:
# composer-options: --prefer-dist
#
# - name: Install PHPStan
# run: composer bin phpstan install
#
# - name: Run static analysis
# run: bin/tools/phpstan/vendor/phpstan/phpstan/phpstan analyse
#
# - name: Install Psalm
# run: composer bin psalm install
#
# - name: Run Psalm on factories generated with maker
# run: bin/tools/psalm/vendor/vimeo/psalm/psalm
#
# fixcs:
# name: Run php-cs-fixer
# needs: sync-with-template
# if: (github.event_name == 'push' || github.event_name == 'schedule') && !startsWith(github.ref, 'refs/tags') && github.repository_owner == 'zenstruck'
# runs-on: ubuntu-latest
# steps:
# - uses: zenstruck/.github/actions/php-cs-fixer@main
# with:
# php: 8
# key: ${{ secrets.GPG_PRIVATE_KEY }}
# token: ${{ secrets.COMPOSER_TOKEN }}
#
# sync-with-template:
# name: Sync meta files
# if: (github.event_name == 'push' || github.event_name == 'schedule') && !startsWith(github.ref, 'refs/tags') && github.repository_owner == 'zenstruck'
# runs-on: ubuntu-latest
# steps:
# - uses: zenstruck/.github/actions/sync-with-template@main
# with:
# key: ${{ secrets.GPG_PRIVATE_KEY }}
# token: ${{ secrets.COMPOSER_TOKEN }}