mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-28 07:19:54 +02:00
254 lines
7.3 KiB
YAML
254 lines
7.3 KiB
YAML
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
|