mirror of
https://github.com/ramsey/uuid.git
synced 2026-06-14 15:56:48 +03:00
56291a3c1d
TL;DR: polyfills are to be installed by downstream consumers, and not provided by libraries In order to support PHP 7.2, 7.3 and 7.4, the `symfony/polyfill-php80` library was dragged in. Symfony now has a long track record of bad stability ranges (see https://github.com/symfony/polyfill-php80/blob/f4386d7f6f66346254ed4e6bfa4354d2d16b83f8/composer.json#L22-L24), so it is best to get rid of it, and instead declare API compatibility with a stable API version (in this case PHP 8.0). In addition to that, to avoid introducing an explicit `ext-ctype` requirement, `symfony/polyfill-ctype` was dragged in too, perhaps in an attempt to retain more popularity. Same as above: symfony has a bad track record of SemVer compliance, so it should not be introduced until strictly necessary. `ext-ctype` is generally available to most target installation systems, and downstream consumers are still free to pull out their foot-gun by doing a `composer require symfony/polyfill-ctype` on their own. This mean that systems having `ext-ctype` installed will get an installation as expected: otherwise, any system that requires `ramsey/uuid` automatically becomes a system capable of providing `ext-ctype` API, which is just not true (before this change).
165 lines
4.3 KiB
YAML
165 lines
4.3 KiB
YAML
# GitHub Actions Documentation: https://docs.github.com/en/actions
|
|
|
|
name: "build"
|
|
|
|
on: ["pull_request", "push"]
|
|
|
|
env:
|
|
COMPOSER_ROOT_VERSION: "1.99.99"
|
|
|
|
jobs:
|
|
coding-standards:
|
|
name: "Coding standards"
|
|
runs-on: "ubuntu-latest"
|
|
steps:
|
|
- name: "Checkout repository"
|
|
uses: "actions/checkout@v2"
|
|
|
|
- name: "Install PHP"
|
|
uses: "shivammathur/setup-php@v2"
|
|
with:
|
|
php-version: "latest"
|
|
coverage: "none"
|
|
|
|
- name: "Install dependencies (Composer)"
|
|
uses: "ramsey/composer-install@v2"
|
|
|
|
- name: "Check syntax (php-parallel-lint)"
|
|
run: "composer lint -- --colors"
|
|
|
|
- name: "Check coding standards (PHP_CodeSniffer)"
|
|
run: "./vendor/bin/phpcs --colors"
|
|
|
|
static-analysis:
|
|
name: "Static analysis"
|
|
runs-on: "ubuntu-latest"
|
|
steps:
|
|
- name: "Checkout repository"
|
|
uses: "actions/checkout@v2"
|
|
|
|
- name: "Install PHP"
|
|
uses: "shivammathur/setup-php@v2"
|
|
with:
|
|
php-version: "latest"
|
|
coverage: "none"
|
|
|
|
- name: "Install dependencies (Composer)"
|
|
uses: "ramsey/composer-install@v2"
|
|
|
|
- name: "Statically analyze code (PHPStan)"
|
|
run: "composer phpstan -- --ansi"
|
|
|
|
- name: "Statically analyze code (Psalm)"
|
|
run: "composer psalm -- --shepherd"
|
|
|
|
benchmark:
|
|
name: "Benchmark"
|
|
runs-on: "ubuntu-latest"
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php-version:
|
|
- "8.0"
|
|
- "8.1"
|
|
|
|
steps:
|
|
- name: "Checkout repository"
|
|
uses: "actions/checkout@v2"
|
|
|
|
- name: "Install dependencies (apt)"
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -y install libsodium-dev uuid-dev
|
|
|
|
- name: "Install PHP"
|
|
uses: "shivammathur/setup-php@v2"
|
|
with:
|
|
php-version: "${{ matrix.php-version }}"
|
|
extensions: bcmath, ctype, gmp, sodium, uuid
|
|
coverage: "none"
|
|
ini-values: "memory_limit=-1"
|
|
|
|
- name: "Install dependencies (Composer)"
|
|
uses: "ramsey/composer-install@v2"
|
|
|
|
- name: "Run PHPBench"
|
|
run: "composer phpbench -- --ansi"
|
|
|
|
code-coverage:
|
|
name: "Code coverage"
|
|
runs-on: "ubuntu-latest"
|
|
steps:
|
|
- name: "Checkout repository"
|
|
uses: "actions/checkout@v2"
|
|
|
|
- name: "Install dependencies (apt)"
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -y install libsodium-dev uuid-dev
|
|
|
|
- name: "Install PHP"
|
|
uses: "shivammathur/setup-php@v2"
|
|
with:
|
|
php-version: "latest"
|
|
extensions: bcmath, ctype, gmp, sodium, uuid
|
|
coverage: "pcov"
|
|
ini-values: "memory_limit=-1"
|
|
|
|
- name: "Install dependencies (Composer)"
|
|
uses: "ramsey/composer-install@v2"
|
|
with:
|
|
dependency-versions: "${{ matrix.dependencies }}"
|
|
|
|
- name: "Run unit tests (PHPUnit)"
|
|
run: "./vendor/bin/phpunit --verbose --colors=always --coverage-text --coverage-clover build/logs/clover.xml"
|
|
|
|
- name: "Publish coverage report to Codecov"
|
|
uses: "codecov/codecov-action@v2.1.0"
|
|
|
|
unit-tests:
|
|
name: "Unit Tests"
|
|
runs-on: ${{ matrix.operating-system }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
php-version:
|
|
- "8.0"
|
|
- "8.1"
|
|
operating-system:
|
|
- "ubuntu-latest"
|
|
- "windows-latest"
|
|
|
|
steps:
|
|
- name: "Configure Git (for Windows)"
|
|
if: ${{ matrix.operating-system == 'windows-latest' }}
|
|
run: |
|
|
git config --system core.autocrlf false
|
|
git config --system core.eol lf
|
|
|
|
- name: "Checkout repository"
|
|
uses: "actions/checkout@v2"
|
|
|
|
- name: "Install dependencies (apt)"
|
|
if: ${{ matrix.operating-system == 'ubuntu-latest' }}
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get -y install libsodium-dev uuid-dev
|
|
|
|
- name: "Install PHP"
|
|
uses: "shivammathur/setup-php@v2"
|
|
with:
|
|
php-version: "${{ matrix.php-version }}"
|
|
extensions: bcmath, ctype, gmp, sodium, uuid
|
|
coverage: "none"
|
|
ini-values: "memory_limit=-1"
|
|
|
|
- name: "Install dependencies (Composer)"
|
|
uses: "ramsey/composer-install@v2"
|
|
with:
|
|
composer-options: "${{ matrix.composer-options }}"
|
|
|
|
- name: "Run unit tests (PHPUnit)"
|
|
run: "./vendor/bin/phpunit --verbose --colors=always --no-coverage"
|