Tests #76
This file contains hidden or 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: PHPUnit & Psalm | |
| on: [pull_request] | |
| jobs: | |
| # phpunit: | |
| # runs-on: ubuntu-22.04 | |
| # strategy: | |
| # matrix: | |
| # php-version: [8.0, 8.1, 8.2, 8.3] | |
| # services: | |
| # mysql: | |
| # image: mysql:8.0 | |
| # env: | |
| # MYSQL_ROOT_PASSWORD: root | |
| # MYSQL_DATABASE: test_db | |
| # MYSQL_USER: test_user | |
| # MYSQL_PASSWORD: test_password | |
| # ports: | |
| # - 3306:3306 | |
| # options: >- | |
| # --health-cmd="mysqladmin ping --silent" | |
| # --health-interval=10s | |
| # --health-timeout=5s | |
| # --health-retries=3 | |
| # postgres: | |
| # image: postgres:14 | |
| # env: | |
| # POSTGRES_USER: test_user | |
| # POSTGRES_PASSWORD: test_password | |
| # POSTGRES_DB: test_db | |
| # ports: | |
| # - 5432:5432 | |
| # options: >- | |
| # --health-cmd="pg_isready" | |
| # --health-interval=10s | |
| # --health-timeout=5s | |
| # --health-retries=3 | |
| # | |
| # steps: | |
| # - uses: actions/checkout@v4 | |
| # | |
| # - name: Setup PHP | |
| # uses: shivammathur/setup-php@v2 | |
| # with: | |
| # php-version: ${{ matrix.php-version }} | |
| # extensions: mbstring, pdo, mysql, pgsql | |
| # coverage: none | |
| # | |
| # - name: Wait for MySQL | |
| # run: | | |
| # echo "Waiting for MySQL..." | |
| # until mysqladmin ping -h 127.0.0.1 --silent; do | |
| # sleep 2 | |
| # done | |
| # echo "MySQL is up!" | |
| # | |
| # echo "Waiting for PostgreSQL..." | |
| # until pg_isready -h 127.0.0.1 -p 5432; do | |
| # sleep 2 | |
| # done | |
| # echo "PostgreSQL is up!" | |
| # | |
| # - name: Install dependencies | |
| # run: composer install --prefer-dist --no-progress --ignore-platform-reqs | |
| # | |
| # - name: Create .env file for testing | |
| # run: | | |
| # echo "POSTGRESQL_HOST=127.0.0.1" > .env | |
| # echo "POSTGRESQL_DATABASE=test_db" >> .env | |
| # echo "POSTGRESQL_USERNAME=test_user" >> .env | |
| # echo "POSTGRESQL_PASSWORD=test_password" >> .env | |
| # echo "POSTGRESQL_PORT=5432" >> .env | |
| # echo "MYSQL_HOST=127.0.0.1" >> .env | |
| # echo "MYSQL_DATABASE=test_db" >> .env | |
| # echo "MYSQL_USERNAME=test_user" >> .env | |
| # echo "MYSQL_PASSWORD=test_password" >> .env | |
| # echo "MYSQL_PORT=3306" >> .env | |
| # | |
| # - name: Run Tests | |
| # run: ./vendor/bin/phpunit --testdox | |
| phpunit: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| include: | |
| # - laravel: 8.* | |
| # php: 8.0 | |
| # - laravel: 9.* | |
| # php: 8.0 | |
| # - laravel: 10.* | |
| # php: 8.1 | |
| # - laravel: 11.* | |
| # php: 8.2 | |
| - laravel: 12.* | |
| php: 8.2 | |
| steps: | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: mbstring, pdo, mysql, pgsql | |
| coverage: none | |
| - name: Preparing Laravel project | |
| run: | | |
| pwd | |
| cd ${{ runner.workspace }} | |
| ls -lha | |
| composer create-project --prefer-dist laravel/laravel laravel ${{ matrix.laravel }} | |
| cd ${{ runner.workspace }}/laravel | |
| composer config repositories.local path ${{ runner.workspace }}/laravel-bulk-upsert | |
| composer require lapaliv/laravel-bulk-upsert:@dev | |
| echo "POSTGRESQL_HOST=127.0.0.1" >> .env | |
| echo "POSTGRESQL_DATABASE=test_db" >> .env | |
| echo "POSTGRESQL_USERNAME=test_user" >> .env | |
| echo "POSTGRESQL_PASSWORD=test_password" >> .env | |
| echo "POSTGRESQL_PORT=5432" >> .env | |
| echo "MYSQL_HOST=127.0.0.1" >> .env | |
| echo "MYSQL_DATABASE=test_db" >> .env | |
| echo "MYSQL_USERNAME=test_user" >> .env | |
| echo "MYSQL_PASSWORD=test_password" >> .env | |
| echo "MYSQL_PORT=3306" >> .env | |
| php artisan key:generate | |
| ls -lha ${{ runner.workspace }} | |
| ls -lha ${{ runner.workspace }}/laravel-bulk-upsert | |
| ls -lha ${{ runner.workspace }}/laravel/vendor/lapaliv/laravel-bulk-upsert | |
| ls -lha ${{ runner.workspace }}/laravel/vendor/lapaliv/laravel-bulk-upsert/src | |
| cp ${{ runner.workspace }}/laravel-bulk-upsert/Makefile ${{ runner.workspace }}/laravel/ | |
| mv ${{ runner.workspace }}/laravel/tests ${{ runner.workspace }}/laravel/tests_old | |
| cp -r ${{ runner.workspace }}/laravel-bulk-upsert/tests ${{ runner.workspace }}/laravel/ | |
| rm ${{ runner.workspace }}/laravel/tests/TestCase.php | |
| cp ${{ runner.workspace }}/laravel/tests_old/TestCase.php ${{ runner.workspace }}/laravel/tests/TestCase.php | |
| - name: Run tests | |
| run: | | |
| cd ${{ runner.workspace }}/laravel | |
| make run-tests | |
| psalm: | |
| runs-on: ubuntu-22.04 | |
| env: | |
| php_version: '8.0' | |
| steps: | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ env.php_version }} | |
| ini-values: "memory_limit=-1" | |
| coverage: none | |
| - name: Checkout target branch | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.base_ref }} | |
| - name: Checkout PR | |
| uses: actions/checkout@v4 | |
| - name: Install dependencies | |
| run: composer install --prefer-dist --no-progress | |
| - name: Psalm | |
| run: ./vendor/bin/psalm --output-format=github --no-progress |