From e714eb6231d87eb5565f43ae1b6bb976c1419594 Mon Sep 17 00:00:00 2001 From: tabuna Date: Tue, 12 Mar 2024 05:59:54 +0300 Subject: [PATCH] WIP --- .github/workflows/phpunit.yaml | 70 ++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/phpunit.yaml diff --git a/.github/workflows/phpunit.yaml b/.github/workflows/phpunit.yaml new file mode 100644 index 00000000..94df5621 --- /dev/null +++ b/.github/workflows/phpunit.yaml @@ -0,0 +1,70 @@ +name: Testing Code with PHPUnit + +on: + push: # (or pull requests) + paths: + - '.github/workflows/**' + - '**.php' + - 'app/**' + - 'tests/**' + - 'phpunit.xml' + - 'composer.json' + - 'composer.lock' + +jobs: + laravel: + name: Laravel (PHP ${{ matrix.php-versions }}) + runs-on: ubuntu-latest + env: + DB_DATABASE: laravel + DB_USERNAME: root + DB_PASSWORD: secret + BROADCAST_DRIVER: log + CACHE_DRIVER: file + QUEUE_CONNECTION: sync + SESSION_DRIVER: cookie + MAIL_MAILER: array + MAIL_FROM_ADDRESS: admin@example.com + strategy: + fail-fast: false + matrix: + php-versions: ['8.3'] + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php + with: + php-version: ${{ matrix.php-versions }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv + coverage: pcov #optional + tools: composer:v2 + env: + COMPOSER_TOKEN: ${{ secrets.TOKEN }} + - name: Get composer cache directory + id: composer-cache + run: echo "::set-output name=dir::$(composer config cache-files-dir)" + - name: Cache composer dependencies + uses: actions/cache@v3 + with: + path: ${{ steps.composer-cache.outputs.dir }} + # Use composer.json for key, if composer.lock is not committed. + # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }} + key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} + restore-keys: ${{ runner.os }}-composer- + - name: Install Composer dependencies + run: composer install --no-progress --prefer-dist --optimize-autoloader + - name: TimeZone ⏰ + run: | + sudo timedatectl set-timezone UTC + timedatectl + - name: Prepare the application + run: | + php -r "file_exists('.env') || copy('.env.example', '.env');" + php artisan key:generate + - name: Clear Config + run: php artisan config:clear + - name: Run Migration + run: php artisan migrate -v + - name: Test with phpunit + run: vendor/bin/phpunit --coverage-text