fix(metrics): guard null hmget response in snapshot data #2
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: | |
| branches: | |
| - main | |
| - master | |
| - '*.x' | |
| pull_request: | |
| schedule: | |
| - cron: '0 0 * * *' | |
| permissions: | |
| contents: read | |
| jobs: | |
| tests: | |
| runs-on: ubuntu-22.04 | |
| services: | |
| redis: | |
| image: redis | |
| ports: | |
| - 6379:6379 | |
| options: --entrypoint redis-server | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| php: [8.1, 8.2, 8.3, 8.4, 8.5] | |
| laravel: [10, 11, 12, 13] | |
| include: | |
| - php: '8.0' | |
| laravel: 9 | |
| - php: 8.1 | |
| laravel: 9 | |
| - php: 8.2 | |
| laravel: 9 | |
| exclude: | |
| - php: 8.1 | |
| laravel: 11 | |
| - php: 8.1 | |
| laravel: 12 | |
| - php: 8.1 | |
| laravel: 13 | |
| - php: 8.2 | |
| laravel: 13 | |
| - php: 8.4 | |
| laravel: 10 | |
| - php: 8.5 | |
| laravel: 10 | |
| - php: 8.5 | |
| laravel: 11 | |
| name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: dom, curl, libxml, mbstring, redis, zip | |
| ini-values: error_reporting=E_ALL | |
| tools: composer:v2 | |
| coverage: none | |
| - name: Install dependencies | |
| run: | | |
| composer update --prefer-dist --no-interaction --no-progress --with="illuminate/contracts:^${{ matrix.laravel }}" | |
| - name: Execute tests | |
| run: vendor/bin/phpunit --fail-on-risky --fail-on-warning --stop-on-error --stop-on-failure ${{ matrix.laravel >= 10 && '--fail-on-deprecation' || '' }} | |
| cluster-tests: | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| fail-fast: true | |
| matrix: | |
| php: [8.3, 8.4, 8.5] | |
| client: ['phpredis', 'predis'] | |
| name: Redis Cluster - PHP ${{ matrix.php }} (${{ matrix.client }}) | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2 | |
| with: | |
| php-version: ${{ matrix.php }} | |
| extensions: dom, curl, libxml, mbstring, redis, zip | |
| ini-values: error_reporting=E_ALL | |
| tools: composer:v2 | |
| coverage: none | |
| - name: Install dependencies | |
| run: composer update --prefer-dist --no-interaction --no-progress --with="illuminate/contracts:^13" | |
| - name: Create Redis Cluster | |
| run: | | |
| sudo apt update | |
| sudo apt-get install -y --fix-missing redis-server | |
| sudo service redis-server stop | |
| redis-server --daemonize yes --port 7000 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-7000.conf | |
| redis-server --daemonize yes --port 7001 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-7001.conf | |
| redis-server --daemonize yes --port 7002 --appendonly yes --cluster-enabled yes --cluster-config-file nodes-7002.conf | |
| redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 0 --cluster-yes | |
| - name: Check Redis Cluster is ready | |
| uses: nick-fields/retry@ad984534de44a9489a53aefd81eb77f87c70dc60 # v4 | |
| with: | |
| timeout_seconds: 5 | |
| max_attempts: 5 | |
| retry_wait_seconds: 5 | |
| retry_on: error | |
| command: | | |
| redis-cli -c -h 127.0.0.1 -p 7000 cluster info | grep "cluster_state:ok" | |
| redis-cli -c -h 127.0.0.1 -p 7001 cluster info | grep "cluster_state:ok" | |
| redis-cli -c -h 127.0.0.1 -p 7002 cluster info | grep "cluster_state:ok" | |
| - name: Execute tests | |
| run: vendor/bin/phpunit --fail-on-risky --fail-on-warning --stop-on-error --stop-on-failure --fail-on-deprecation | |
| env: | |
| REDIS_CLIENT: ${{ matrix.client }} | |
| REDIS_CLUSTER_HOSTS_AND_PORTS: 127.0.0.1:7000,127.0.0.1:7001,127.0.0.1:7002 | |
| QUEUE_CONNECTION: redis |