From b2e7a49dd5e98cec8d6c46c4a0f17e92b11f03ff Mon Sep 17 00:00:00 2001 From: Shivam Mathur Date: Sun, 13 Oct 2019 05:27:58 +0530 Subject: [PATCH] Add lumen examples and fix laravel examples --- README.md | 9 ++++-- examples/laravel-mysql.yml | 4 ++- examples/lumen-mysql.yml | 60 +++++++++++++++++++++++++++++++++++ examples/lumen-postgres.yml | 62 +++++++++++++++++++++++++++++++++++++ examples/lumen.yml | 29 +++++++++++++++++ 5 files changed, 160 insertions(+), 4 deletions(-) create mode 100644 examples/lumen-mysql.yml create mode 100644 examples/lumen-postgres.yml create mode 100644 examples/lumen.yml diff --git a/README.md b/README.md index ee1bbdb2..f7437f19 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@

-# Setup PHP in GitHub Actions +

Setup PHP in GitHub Actions

-

+

GitHub Actions status Codecov Code Coverage LICENSE @@ -163,6 +163,9 @@ Examples for setting up this GitHub Action with different PHP Frameworks/Package |Laravel with `MySQL` and `Redis`|`ubuntu`|[laravel-mysql.yml](./examples/laravel-mysql.yml "GitHub Action for Laravel with MySQL and Redis")| |Laravel with `PostgreSQL` and `Redis`|`ubuntu`|[laravel-postgres.yml](./examples/laravel-postgres.yml "GitHub Action for Laravel with PostgreSQL and Redis")| |Laravel without services|`macOS`, `ubuntu` and `windows`|[laravel.yml](./examples/laravel.yml "GitHub Action for Laravel without services")| +|Lumen with `MySQL` and `Redis`|`ubuntu`|[lumen-mysql.yml](./examples/lumen-mysql.yml "GitHub Action for Lumen with MySQL and Redis")| +|Lumen with `PostgreSQL` and `Redis`|`ubuntu`|[lumen-postgres.yml](./examples/lumen-postgres.yml "GitHub Action for Lumen with PostgreSQL and Redis")| +|Lumen without services|`macOS`, `ubuntu` and `windows`|[lumen.yml](./examples/lumen.yml "GitHub Action for Lumen without services")| |Slim Framework|`macOS`, `ubuntu` and `windows`|[slim-framework.yml](./examples/slim-framework.yml "GitHub Action for Slim Framework")| |Symfony with `MySQL`|`ubuntu`|[symfony-mysql.yml](./examples/symfony-mysql.yml "GitHub Action for Symfony with MySQL")| |Symfony with `PostgreSQL`|`ubuntu`|[symfony-postgres.yml](./examples/symfony-postgres.yml "GitHub Action for Symfony with PostgreSQL")| @@ -180,7 +183,7 @@ Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "sh ## :sparkling_heart: Support this project -- Please star the project and share it among your developer friends. +- Please star the project and share it. - Consider supporting on Support me on Patreon and Support me on Paypal. ## :bookmark: This action uses the following works diff --git a/examples/laravel-mysql.yml b/examples/laravel-mysql.yml index 707fb0a3..376081e9 100644 --- a/examples/laravel-mysql.yml +++ b/examples/laravel-mysql.yml @@ -5,7 +5,9 @@ jobs: laravel: name: Laravel (PHP ${{ matrix.php-versions }}) runs-on: ubuntu-latest - env: + env: + DB_DATABASE: laravel + DB_USERNAME: root DB_PASSWORD: password BROADCAST_DRIVER: log CACHE_DRIVER: redis diff --git a/examples/lumen-mysql.yml b/examples/lumen-mysql.yml new file mode 100644 index 00000000..716b30ae --- /dev/null +++ b/examples/lumen-mysql.yml @@ -0,0 +1,60 @@ +# GitHub Action for Lumen with MySQL and Redis +name: Testing Lumen with MySQL +on: [push, pull_request] +jobs: + lumen: + name: Lumen (PHP ${{ matrix.php-versions }}) + runs-on: ubuntu-latest + env: + DB_DATABASE: lumen + DB_USERNAME: root + DB_PASSWORD: password + BROADCAST_DRIVER: log + CACHE_DRIVER: redis + QUEUE_CONNECTION: redis + SESSION_DRIVER: redis + services: + mysql: + image: mysql:5.7 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: false + MYSQL_ROOT_PASSWORD: password + MYSQL_DATABASE: lumen + ports: + - 3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + redis: + image: redis + ports: + - 6379/tcp + options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 + strategy: + fail-fast: false + max-parallel: 3 + matrix: + php-versions: ['7.2', '7.3'] + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@master #https://github.com/shivammathur/setup-php + with: + php-version: ${{ matrix.php-versions }} + extension-csv: mbstring, dom, fileinfo, mysql + coverage: xdebug #optional + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer require predis/predis illuminate/redis + - name: Prepare the application + run: php -r "file_exists('.env') || copy('.env.example', '.env');" + - name: Register Redis as service provider + run: sed -i '$i\$app->register(Illuminate\\Redis\\RedisServiceProvider::class);' bootstrap/app.php + - name: Run Migration + run: php artisan migrate -v + env: + DB_PORT: ${{ job.services.mysql.ports['3306'] }} + - name: Test with phpunit + run: vendor/bin/phpunit --coverage-text + env: + DB_PORT: ${{ job.services.mysql.ports['3306'] }} \ No newline at end of file diff --git a/examples/lumen-postgres.yml b/examples/lumen-postgres.yml new file mode 100644 index 00000000..d1db7bc9 --- /dev/null +++ b/examples/lumen-postgres.yml @@ -0,0 +1,62 @@ +# GitHub Action for Lumen with PostgreSQL and Redis +name: Testing Lumen with PostgreSQL +on: [push, pull_request] +jobs: + laravel: + name: Lumen (PHP ${{ matrix.php-versions }}) + runs-on: ubuntu-latest + env: + BROADCAST_DRIVER: log + CACHE_DRIVER: redis + QUEUE_CONNECTION: redis + SESSION_DRIVER: redis + DB_CONNECTION: pgsql + DB_HOST: localhost + DB_PASSWORD: postgres + DB_USERNAME: postgres + DB_DATABASE: postgres + services: + postgres: + image: postgres:10.8 + env: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_DB: postgres + ports: + - 5432/tcp + options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 3 + redis: + image: redis + ports: + - 6379/tcp + options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3 + strategy: + fail-fast: false + max-parallel: 3 + matrix: + php-versions: ['7.2', '7.3'] + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@master #https://github.com/shivammathur/setup-php + with: + php-version: ${{ matrix.php-versions }} + extension-csv: mbstring, dom, fileinfo, pgsql + coverage: xdebug #optional + - name: Install Composer dependencies + run: | + composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + composer require predis/predis illuminate/redis + - name: Prepare the application + run: php -r "file_exists('.env') || copy('.env.example', '.env');" + - name: Register Redis as service provider + run: sed -i '$i\$app->register(Illuminate\\Redis\\RedisServiceProvider::class);' bootstrap/app.php + - name: Run Migration + run: php artisan migrate -v + env: + DB_PORT: ${{ job.services.postgres.ports[5432] }} + - name: Test with phpunit + run: vendor/bin/phpunit --coverage-text + env: + DB_PORT: ${{ job.services.postgres.ports[5432] }} diff --git a/examples/lumen.yml b/examples/lumen.yml new file mode 100644 index 00000000..c90e3cf4 --- /dev/null +++ b/examples/lumen.yml @@ -0,0 +1,29 @@ +# GitHub Action for Lumen +name: Unit Testing Lumen +on: [push, pull_request] +jobs: + lumen: + name: Lumen (PHP ${{ matrix.php-versions }} on ${{ matrix.operating-system }}) + runs-on: ${{ matrix.operating-system }} + strategy: + fail-fast: false + max-parallel: 9 + matrix: + operating-system: [ubuntu-latest, windows-latest, macOS-latest] + php-versions: ['7.2', '7.3'] + steps: + - name: Checkout + uses: actions/checkout@v1 + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@master #https://github.com/shivammathur/setup-php + with: + php-version: ${{ matrix.php-versions }} + extension-csv: mbstring, dom, fileinfo, mysql + coverage: xdebug #optional + - name: Install Composer dependencies + run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader + - name: Prepare the application + run: php -r "file_exists('.env') || copy('.env.example', '.env');" + - name: Test with phpunit + run: vendor/bin/phpunit --coverage-text + shell: pwsh \ No newline at end of file