From 84cb381fbbb065713c011b61e38f3bca896403ee Mon Sep 17 00:00:00 2001 From: luanfreitasdev Date: Fri, 31 May 2024 20:17:01 -0300 Subject: [PATCH] Add typesense.yml --- .github/workflows/typesense.yml | 81 +++++++++++++++++++++++++++++++++ composer.json | 3 ++ phpunit.typesense.xml | 21 +++++++++ 3 files changed, 105 insertions(+) create mode 100644 .github/workflows/typesense.yml create mode 100644 phpunit.typesense.xml diff --git a/.github/workflows/typesense.yml b/.github/workflows/typesense.yml new file mode 100644 index 000000000..8fa615f44 --- /dev/null +++ b/.github/workflows/typesense.yml @@ -0,0 +1,81 @@ +name: Scout Typesense + +on: + push: + branches: + - "**" + paths-ignore: + - "art/**" + - "README.md" + pull_request: + types: [ready_for_review, synchronize, opened] + paths-ignore: + - "art/**" + - "README.md" + +jobs: + build: + runs-on: ubuntu-latest + + services: + mysql: + image: mysql:5.7 + env: + MYSQL_ROOT_PASSWORD: password + MYSQL_DATABASE: powergridtest + ports: + - 3307:3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + + typesense: + image: typesense/typesense:latest + ports: + - 8108:8108 + options: > + --health-cmd="curl --fail http://localhost:8108/health || exit 1" + --health-interval=10s + --health-timeout=5s + --health-retries=3 + + strategy: + fail-fast: false + matrix: + php: [8.3] + laravel: [11.*] + dependency-version: [ prefer-stable ] + + name: PHP:${{ matrix.php }} / L:${{ matrix.laravel }} + + if: github.ref != 'refs/heads/todo-tests' + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup PHP, with composer and extensions + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv + tools: composer:v2 + coverage: none + + - 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@v4 + with: + path: $(composer config cache-files-dir) + key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} + + - name: Install Composer dependencies + run: | + composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update + composer require typesense/typesense-laravel-scout + composer require laravel/scout + composer install + + - name: Tests + run: composer test:typesense diff --git a/composer.json b/composer.json index 2845baa9b..28eb8757e 100644 --- a/composer.json +++ b/composer.json @@ -77,6 +77,9 @@ "test:sqlsrv": [ "./vendor/bin/pest --configuration phpunit.sqlsrv.xml" ], + "test:typesense": [ + "curl http://localhost:8108/health" + ], "test:types": "./vendor/bin/phpstan analyse --ansi --memory-limit=-1", "test:dbs": [ "@test:sqlite", diff --git a/phpunit.typesense.xml b/phpunit.typesense.xml new file mode 100644 index 000000000..c9b275a89 --- /dev/null +++ b/phpunit.typesense.xml @@ -0,0 +1,21 @@ + + + + + ./tests/Feature + + + + + + + + + + + + + ./src + + +