Skip to content

Release 5.3.0 (#358) #240

Release 5.3.0 (#358)

Release 5.3.0 (#358) #240

Workflow file for this run

name: build-master
on:
push:
branches:
- master
jobs:
build:
if: "!contains(github.event.commits[0].message, 'Release')"
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 1
fail-fast: false
matrix:
include:
# Ubuntu builds
- os: ubuntu-latest
php-version: "8.1"
- os: ubuntu-latest
php-version: "8.4"
# Windows builds
- os: windows-latest
php-version: "8.1"
- os: windows-latest
php-version: "8.4"
steps:
- uses: actions/checkout@v2
- name: Setup PHP (Ubuntu)
if: matrix.os == 'ubuntu-latest'
shell: bash
run: |
sudo apt-get update
sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt-get update
# Install PHP and required extensions (PHP 8.x; json is built-in, no separate package)
sudo apt-get install -y php${{ matrix.php-version }} php${{ matrix.php-version }}-cli php${{ matrix.php-version }}-common
sudo apt-get install -y php${{ matrix.php-version }}-curl php${{ matrix.php-version }}-mbstring
sudo apt-get install -y php${{ matrix.php-version }}-xml php${{ matrix.php-version }}-zip
# Try to install fileinfo if package exists, ignore if not (often built-in)
sudo apt-get install -y php${{ matrix.php-version }}-fileinfo 2>/dev/null || true
# Set PHP as default
sudo update-alternatives --set php /usr/bin/php${{ matrix.php-version }}
# Install Composer
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
- name: Setup PHP (Windows)
if: matrix.os == 'windows-latest'
shell: powershell
run: |
# Download and setup specific PHP version for Windows
$phpVersion = "${{ matrix.php-version }}"
$phpDir = "C:\php-$phpVersion"
# Create PHP directory
New-Item -ItemType Directory -Force -Path $phpDir
# Download PHP based on version
switch ($phpVersion) {
"8.1" { $downloadUrl = "https://downloads.php.net/~windows/releases/php-8.1.34-Win32-vs16-x64.zip" }
"8.4" { $downloadUrl = "https://downloads.php.net/~windows/releases/php-8.4.23-Win32-vs17-x64.zip" }
default { throw "Unsupported PHP version: $phpVersion" }
}
# Download and extract PHP
$zipFile = "$phpDir\php.zip"
Invoke-WebRequest -Uri $downloadUrl -OutFile $zipFile
Expand-Archive -Path $zipFile -DestinationPath $phpDir -Force
Remove-Item $zipFile
# Copy php.ini-development to php.ini and enable extensions
Copy-Item "$phpDir\php.ini-development" "$phpDir\php.ini"
(Get-Content "$phpDir\php.ini") -replace ';extension_dir = "ext"', "extension_dir = `"$phpDir\ext`"" |
ForEach-Object { $_ -replace ';extension=curl', 'extension=curl' } |
ForEach-Object { $_ -replace ';extension=fileinfo', 'extension=fileinfo' } |
ForEach-Object { $_ -replace ';extension=mbstring', 'extension=mbstring' } |
ForEach-Object { $_ -replace ';extension=openssl', 'extension=openssl' } |
ForEach-Object { $_ -replace ';extension=xml', 'extension=xml' } |
ForEach-Object { $_ -replace ';extension=zip', 'extension=zip' } |
ForEach-Object { $_ -replace 'memory_limit = 128M', 'memory_limit = 1G' } |
Set-Content "$phpDir\php.ini"
# Add PHP to PATH (at the beginning to override system PHP)
echo "$phpDir" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
$env:PATH = "$phpDir;$env:PATH"
# Download and setup Composer
$composerUrl = "https://getcomposer.org/composer-stable.phar"
Invoke-WebRequest -Uri $composerUrl -OutFile "$phpDir\composer.phar"
echo "@echo off" | Out-File -FilePath "$phpDir\composer.bat" -Encoding ascii
echo "php `"%~dp0composer.phar`" %*" | Out-File -FilePath "$phpDir\composer.bat" -Encoding ascii -Append
- name: Installed version
run: php -v
- name: Composer validate
shell: bash
run: composer validate
- name: Composer update
shell: bash
run: composer update --prefer-dist --no-interaction
- name: Run PHPStan
run: vendor/bin/phpstan analyse --no-progress
- name: Run PHPUnit
env:
CHECKOUT_PROCESSING_CHANNEL_ID: ${{ secrets.IT_CHECKOUT_PROCESSING_CHANNEL_ID }}
CHECKOUT_PREVIOUS_SECRET_KEY: ${{ secrets.IT_CHECKOUT_PREVIOUS_SECRET_KEY }}
CHECKOUT_PREVIOUS_PUBLIC_KEY: ${{ secrets.IT_CHECKOUT_PREVIOUS_PUBLIC_KEY }}
CHECKOUT_DEFAULT_SECRET_KEY: ${{ secrets.IT_CHECKOUT_DEFAULT_SECRET_KEY }}
CHECKOUT_DEFAULT_PUBLIC_KEY: ${{ secrets.IT_CHECKOUT_DEFAULT_PUBLIC_KEY }}
CHECKOUT_DEFAULT_OAUTH_CLIENT_ID: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_CLIENT_ID }}
CHECKOUT_DEFAULT_OAUTH_CLIENT_SECRET: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_CLIENT_SECRET }}
CHECKOUT_DEFAULT_OAUTH_PAYOUT_SCHEDULE_CLIENT_ID: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_PAYOUT_SCHEDULE_CLIENT_ID }}
CHECKOUT_DEFAULT_OAUTH_PAYOUT_SCHEDULE_CLIENT_SECRET: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_PAYOUT_SCHEDULE_CLIENT_SECRET }}
CHECKOUT_DEFAULT_OAUTH_ACCOUNTS_CLIENT_ID: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_ACCOUNTS_CLIENT_ID }}
CHECKOUT_DEFAULT_OAUTH_ACCOUNTS_CLIENT_SECRET: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_ACCOUNTS_CLIENT_SECRET }}
CHECKOUT_DEFAULT_OAUTH_ISSUING_CLIENT_ID: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_ISSUING_CLIENT_ID }}
CHECKOUT_DEFAULT_OAUTH_ISSUING_CLIENT_SECRET: ${{ secrets.IT_CHECKOUT_DEFAULT_OAUTH_ISSUING_CLIENT_SECRET }}
CHECKOUT_MERCHANT_SUBDOMAIN: ${{ secrets.IT_CHECKOUT_MERCHANT_SUBDOMAIN }}
run: vendor/bin/phpunit --verbose