fix: correct email-based duplicate detection in people imports #540
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: Tests | |
| on: [push] | |
| jobs: | |
| lint-and-static-analysis: | |
| runs-on: ubuntu-latest | |
| name: Code Quality Checks | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Cache Dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.composer/cache/files | |
| key: dependencies-php-composer-${{ hashFiles('composer.lock') }} | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: 8.4 | |
| extensions: json, dom, curl, libxml, mbstring, zip | |
| tools: composer:v2 | |
| - name: Install PHP dependencies | |
| run: composer install --no-interaction --no-progress --ansi --prefer-dist --optimize-autoloader | |
| - name: Prepare Laravel Application | |
| run: | | |
| cp .env.ci .env | |
| php artisan key:generate | |
| - name: Run Lint | |
| run: composer test:lint | |
| - name: Run Refactor Check | |
| run: composer test:refactor | |
| - name: Run Type Coverage | |
| run: composer test:type-coverage | |
| - name: Run Static Analysis | |
| run: composer test:types | |
| tests: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| php: [8.4] | |
| shard: [1, 2, 3, 4, 5, 6, 7] | |
| name: Tests (Shard ${{ matrix.shard }}/7) | |
| # Service containers to run with `runner-job` | |
| services: | |
| # Label used to access the service container | |
| postgres: | |
| # Docker Hub image | |
| image: postgres | |
| # Provide the password for postgres | |
| env: | |
| # optional (defaults to `postgres`) | |
| POSTGRES_DB: relaticle_testing | |
| # required | |
| POSTGRES_PASSWORD: postgres | |
| # optional (defaults to `5432`) | |
| POSTGRES_PORT: 5432 | |
| # optional (defaults to `postgres`) | |
| POSTGRES_USER: postgres | |
| # Set health checks to wait until postgres has started | |
| options: >- | |
| --health-cmd pg_isready | |
| --health-interval 10s | |
| --health-timeout 5s | |
| --health-retries 5 | |
| ports: | |
| # Maps tcp port 5432 on service container to the host | |
| - 5432:5432 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Cache Dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.composer/cache/files | |
| key: dependencies-php-composer-${{ hashFiles('composer.lock') }} | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: json, dom, curl, libxml, mbstring, zip | |
| tools: composer:v2 | |
| coverage: xdebug | |
| - name: Set up Node & NPM | |
| uses: actions/setup-node@v5 | |
| with: | |
| node-version: '22.x' | |
| - name: Setup Problem Matches | |
| run: | | |
| echo "::add-matcher::${{ runner.tool_cache }}/php.json" | |
| echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" | |
| - name: Install PHP dependencies | |
| run: composer install --no-interaction --no-progress --ansi --prefer-dist --optimize-autoloader | |
| - name: Get NPM cache directory | |
| id: npm-cache-dir | |
| shell: bash | |
| run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} | |
| - name: Cache dependencies | |
| id: npm-cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ${{ steps.npm-cache-dir.outputs.dir }} | |
| key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node- | |
| - name: Install dependencies | |
| if: steps.cache.outputs.cache-hit != 'true' | |
| run: npm install | |
| - name: Build dependencies | |
| run: npm run build | |
| - name: Prepare Laravel | |
| run: | | |
| cp .env.ci .env | |
| php artisan key:generate | |
| - name: Tests | |
| run: composer test:pest:ci:shard | |
| env: | |
| SHARD: ${{ matrix.shard }}/7 |