Modify patch to retry writes once if they fail, then throw if not #879
Workflow file for this run
This file contains 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: "Continuous Integration" | |
on: | |
- push | |
- pull_request | |
permissions: | |
contents: read | |
jobs: | |
tests: | |
name: "CI (PHP ${{ matrix.php-version }}, ${{ matrix.dependencies }} deps)" | |
runs-on: "${{ matrix.operating-system }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
php-version: | |
- "7.2" | |
- "7.3" | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
- "8.2" | |
- "8.3" | |
dependencies: [highest] | |
composer-options: [""] | |
operating-system: | |
- "ubuntu-latest" | |
include: | |
- php-version: "7.2" | |
dependencies: lowest | |
operating-system: ubuntu-latest | |
- php-version: "8.4" | |
dependencies: highest | |
operating-system: ubuntu-latest | |
composer-options: "--ignore-platform-req=php+" | |
steps: | |
- uses: "actions/checkout@v4" | |
- name: Run CouchDB | |
timeout-minutes: 3 | |
continue-on-error: true | |
uses: "cobot/couchdb-action@master" | |
with: | |
couchdb version: '2.3.1' | |
- name: Run MongoDB | |
uses: supercharge/mongodb-github-action@1.10.0 | |
with: | |
mongodb-version: 5.0 | |
- uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
extensions: mongodb, redis, amqp | |
tools: "composer:v2" | |
ini-values: "memory_limit=-1" | |
- name: Add require for mongodb/mongodb to make tests runnable | |
run: 'composer require mongodb/mongodb --dev --no-update' | |
- name: "Change dependencies" | |
run: | | |
composer require --no-update --no-interaction --dev elasticsearch/elasticsearch:^7 | |
composer config --no-plugins allow-plugins.ocramius/package-versions true | |
- uses: "ramsey/composer-install@v2" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
composer-options: "${{ matrix.composer-options }}" | |
- name: "Run tests" | |
run: "composer exec phpunit -- --exclude-group Elasticsearch,Elastica --verbose" | |
- name: "Run tests with psr/log 3" | |
if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'" | |
run: | | |
composer remove --no-update --dev graylog2/gelf-php ruflin/elastica elasticsearch/elasticsearch rollbar/rollbar | |
composer require --no-update psr/log:^3 | |
composer update ${{ matrix.composer-options }} | |
composer exec phpunit -- --exclude-group Elasticsearch,Elastica --verbose | |
tests-es-7: | |
name: "CI with ES ${{ matrix.es-version }} on PHP ${{ matrix.php-version }}" | |
needs: "tests" | |
runs-on: "${{ matrix.operating-system }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: | |
- "ubuntu-latest" | |
php-version: | |
- "7.2" | |
- "7.3" | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
dependencies: | |
- "highest" | |
- "lowest" | |
es-version: | |
- "7.0.0" | |
- "7.17.0" | |
exclude: | |
# php 7.3 is required | |
- php-version: "7.2" | |
es-version: "7.17.0" | |
# tests failing due an error in deprecated guzzlehttp/ringphp | |
- php-version: "7.3" | |
es-version: "7.0.0" | |
- php-version: "7.4" | |
es-version: "7.0.0" | |
steps: | |
- uses: "actions/checkout@v4" | |
# required for elasticsearch | |
- name: Configure sysctl limits | |
run: | | |
sudo swapoff -a | |
sudo sysctl -w vm.swappiness=1 | |
sudo sysctl -w fs.file-max=262144 | |
sudo sysctl -w vm.max_map_count=262144 | |
- name: Run Elasticsearch | |
timeout-minutes: 3 | |
uses: elastic/elastic-github-actions/elasticsearch@master | |
with: | |
stack-version: "${{ matrix.es-version }}" | |
- uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
extensions: mongodb, redis, amqp | |
tools: "composer:v2" | |
ini-values: "memory_limit=-1" | |
- name: "Change dependencies" | |
run: "composer require --no-update --no-interaction --dev elasticsearch/elasticsearch:^${{ matrix.es-version }}" | |
- name: "Allow composer plugin to run" | |
if: "matrix.php-version == '7.4' && matrix.dependencies == 'lowest'" | |
run: "composer config allow-plugins.ocramius/package-versions true" | |
- uses: "ramsey/composer-install@v2" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Run tests" | |
run: "composer exec phpunit -- --group Elasticsearch,Elastica --verbose" | |
- name: "Run tests with psr/log 3" | |
if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'" | |
run: | | |
composer remove --no-update --dev graylog2/gelf-php ruflin/elastica elasticsearch/elasticsearch rollbar/rollbar | |
composer require --no-update --no-interaction --dev ruflin/elastica:^7 elasticsearch/elasticsearch:^7 | |
composer require --no-update psr/log:^3 | |
composer update | |
composer exec phpunit -- --group Elasticsearch,Elastica --verbose | |
tests-es-8: | |
name: "CI with ES ${{ matrix.es-version }} on PHP ${{ matrix.php-version }}" | |
needs: "tests" | |
runs-on: "${{ matrix.operating-system }}" | |
strategy: | |
fail-fast: false | |
matrix: | |
operating-system: | |
- "ubuntu-latest" | |
php-version: | |
# ES 8 requires PHP 7.4+ | |
- "7.4" | |
- "8.0" | |
- "8.1" | |
dependencies: | |
- "highest" | |
- "lowest" | |
es-version: | |
- "8.0.0" | |
- "8.2.0" | |
steps: | |
- uses: "actions/checkout@v4" | |
# required for elasticsearch | |
- name: Configure sysctl limits | |
run: | | |
sudo swapoff -a | |
sudo sysctl -w vm.swappiness=1 | |
sudo sysctl -w fs.file-max=262144 | |
sudo sysctl -w vm.max_map_count=262144 | |
- name: Run Elasticsearch | |
timeout-minutes: 3 | |
uses: elastic/elastic-github-actions/elasticsearch@master | |
with: | |
stack-version: "${{ matrix.es-version }}" | |
- uses: "shivammathur/setup-php@v2" | |
with: | |
coverage: "none" | |
php-version: "${{ matrix.php-version }}" | |
extensions: mongodb, redis, amqp | |
tools: "composer:v2" | |
ini-values: "memory_limit=-1" | |
- name: "Change dependencies" | |
run: | | |
composer remove --no-update --dev graylog2/gelf-php ruflin/elastica elasticsearch/elasticsearch rollbar/rollbar | |
composer require --no-update --no-interaction --dev elasticsearch/elasticsearch:^8 | |
- name: "Allow composer plugin to run" | |
if: "matrix.php-version == '7.4' && matrix.dependencies == 'lowest'" | |
run: "composer config allow-plugins.ocramius/package-versions true" | |
- uses: "ramsey/composer-install@v2" | |
with: | |
dependency-versions: "${{ matrix.dependencies }}" | |
- name: "Run tests" | |
run: "composer exec phpunit -- --group Elasticsearch,Elastica --verbose" | |
- name: "Run tests with psr/log 3" | |
if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'" | |
run: | | |
composer require --no-update psr/log:^3 | |
composer update -W | |
composer exec phpunit -- --group Elasticsearch,Elastica --verbose |