Skip to content

Support 32-bit PHP in fromFloatExact() #600

Support 32-bit PHP in fromFloatExact()

Support 32-bit PHP in fromFloatExact() #600

Workflow file for this run

name: CI
on:
push:
pull_request:
env:
PHPSTAN_PHP_VERSION: "8.5"
COVERAGE_PHP_VERSION: "8.5"
jobs:
phpstan:
name: PHPStan
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ env.PHPSTAN_PHP_VERSION }}
- name: Install composer dependencies
uses: ramsey/composer-install@v3
- name: Run PHPStan
run: vendor/bin/phpstan --no-progress
coding-standard:
name: Coding Standard
uses: brick/coding-standard/.github/workflows/coding-standard.yml@v4
with:
php-version: "8.2"
working-directory: "tools/ecs"
phpunit:
name: PHPUnit
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-version:
- "8.2"
- "8.3"
- "8.4"
- "8.5"
calculator:
- GMP
- BCMath
- Native
deps:
- "highest"
include:
- php-version: "8.2"
calculator: GMP
deps: "lowest"
- php-version: "8.2"
calculator: BCMath
deps: "lowest"
- php-version: "8.2"
calculator: Native
deps: "lowest"
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
coverage: pcov
- name: Install composer dependencies
uses: ramsey/composer-install@v3
with:
dependency-versions: ${{ matrix.deps }}
- name: Run PHPUnit
run: vendor/bin/phpunit
env:
CALCULATOR: ${{ matrix.calculator }}
if: ${{ matrix.php-version != env.COVERAGE_PHP_VERSION }}
- name: Run PHPUnit with coverage
run: vendor/bin/phpunit --coverage-clover clover.xml
env:
CALCULATOR: ${{ matrix.calculator }}
if: ${{ matrix.php-version == env.COVERAGE_PHP_VERSION }}
- name: Run PHPUnit with bcscale()
run: vendor/bin/phpunit
env:
CALCULATOR: BCMath
BCMATH_DEFAULT_SCALE: 8
if: ${{ matrix.calculator == 'BCMath' }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
if: ${{ matrix.php-version == env.COVERAGE_PHP_VERSION }}
phpunit-32bit:
name: PHPUnit (32-bit)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
calculator:
- GMP
- BCMath
- Native
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Run PHPUnit
run: |
docker run --platform linux/386 --rm -i \
-v ${{ github.workspace }}:/app \
-w /app \
-e CALCULATOR=${{ matrix.calculator }} \
php:8.5-cli bash -e <<'EOF'
apt-get update
apt-get install -y libgmp-dev unzip
docker-php-ext-install gmp bcmath > /dev/null
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
composer install --no-interaction
php -r 'echo "PHP_INT_SIZE=", PHP_INT_SIZE, "\n";'
php -r 'exit(PHP_INT_SIZE === 4 ? 0 : 1);'
vendor/bin/phpunit
EOF