You've already forked phpmyadmin
mirror of
https://github.com/phpmyadmin/phpmyadmin.git
synced 2026-10-28 07:41:55 +03:00
Already merged in master: https://github.com/phpmyadmin/phpmyadmin/pull/19960 Re-write of the test from4de9f0f0b1Merge of631cac096fMerge of58cee9656fbut could not find the code to implement Signed-off-by: William Desportes <williamdes@wdes.fr>
189 lines
7.8 KiB
YAML
189 lines
7.8 KiB
YAML
name: Run tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
types: [opened, synchronize, reopened]
|
|
branches:
|
|
- master
|
|
- QA_**
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
multi-arch-tests-php:
|
|
name: Test on PHP ${{ matrix.php-version }} (${{ matrix.arch }})
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- { php-version: '82', experimental: false, arch: 'amd64', exclude-phpunit-groups: '--exclude-group extension-iconv' }
|
|
- { php-version: '82', experimental: false, arch: 'arm64/v8', exclude-phpunit-groups: '--exclude-group extension-iconv' }
|
|
- { php-version: '82', experimental: false, arch: 'arm/v7', exclude-phpunit-groups: '--exclude-group extension-iconv --exclude-group 32bit-incompatible' }
|
|
- { php-version: '82', experimental: false, arch: 'i386', exclude-phpunit-groups: '--exclude-group extension-iconv --exclude-group 32bit-incompatible' }
|
|
- { php-version: '82', experimental: true, arch: 'ppc64le', exclude-phpunit-groups: '--exclude-group extension-iconv' }
|
|
- { php-version: '82', experimental: false, arch: 's390x', exclude-phpunit-groups: '--exclude-group extension-iconv --exclude-group 32bit-incompatible' }
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Write script
|
|
# tcpdf allowed memory exhausted needs the memory_limit workaround
|
|
# musl-locales and musl-locales-lang are needed to run some locale specific tests
|
|
# gettext is needed to run generate-mo
|
|
# git is needed to work around a version detection issue with composer, see: https://github.com/Roave/SecurityAdvisories/issues/76
|
|
# ctype for psalm
|
|
run: |
|
|
printf "set -exu && \
|
|
export V='%s' && \
|
|
apk add --update --no-cache \
|
|
php\$V-cli php\$V-mysqli php\$V-session php\$V-mbstring php\$V-ctype php\$V-sodium \
|
|
php\$V-iconv php\$V-xml php\$V-tokenizer php\$V-xmlwriter php\$V-simplexml \
|
|
php\$V-dom php\$V-json php\$V-bz2 php\$V-curl php\$V-gd php\$V-zip php\$V-bcmath \
|
|
musl-locales musl-locales-lang \
|
|
gettext composer git && \
|
|
composer config version "$(php -r "define('VERSION_SUFFIX', ''); require_once('src/Version.php'); echo \PhpMyAdmin\Version::VERSION;")" && \
|
|
composer install && \
|
|
./bin/generate-mo && \
|
|
php\$V -d memory_limit=512M ./vendor/bin/phpunit --no-logging --no-coverage --testsuite unit %s" \
|
|
"${{ matrix.php-version }}" "${{ matrix.exclude-phpunit-groups }}" > ./do-tests.sh
|
|
|
|
- name: Set up multi arch support
|
|
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
|
|
|
|
- name: Print arch
|
|
run: docker run --rm --platform linux/${{ matrix.arch }} alpine:3.19 uname -a
|
|
|
|
- name: Run tests on php ${{ matrix.php-version }}
|
|
run: docker run -v $PWD:/app --workdir /app --rm --platform linux/${{ matrix.arch }} alpine:3.19 sh /app/do-tests.sh
|
|
|
|
test-php:
|
|
name: Test on PHP ${{ matrix.php-version }}, ${{ matrix.composer-dependency }} and ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
continue-on-error: ${{ matrix.php-version == '8.5' }}
|
|
strategy:
|
|
matrix:
|
|
php-version: ['8.2', '8.3', '8.4']
|
|
os: [ubuntu-latest]
|
|
composer-dependency: [locked, highest]
|
|
php-extensions: ['mbstring, iconv, mysqli, zip, gd, bz2']
|
|
include:
|
|
- php-version: '8.5'
|
|
os: ubuntu-latest
|
|
composer-dependency: locked
|
|
composer-options: '--ignore-platform-req=php+'
|
|
php-extensions: 'mbstring, iconv, mysqli, zip, bz2'
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
# Fetch some commits for Scrutinizer coverage upload
|
|
fetch-depth: 15
|
|
|
|
- name: Install gettext
|
|
run: sudo apt-get install -y gettext
|
|
|
|
- name: Generate mo files
|
|
run: ./bin/generate-mo --quiet
|
|
|
|
- name: Set up PHP ${{ matrix.php-version }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-version }}
|
|
extensions: ${{ matrix.php-extensions }}
|
|
coverage: xdebug
|
|
|
|
- name: Install Composer dependencies
|
|
uses: ramsey/composer-install@v3
|
|
with:
|
|
dependency-versions: ${{ matrix.composer-dependency }}
|
|
composer-options: ${{ matrix.composer-options }}
|
|
|
|
- name: Run PHP tests
|
|
run: composer run phpunit -- --testsuite unit --display-deprecations --display-notices --display-warnings --display-errors
|
|
|
|
- name: Send coverage
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
flags: unit-${{ matrix.php-version }}-${{ matrix.os }}
|
|
name: phpunit-${{ matrix.php-version }}-${{ matrix.os }}
|
|
|
|
- name: Send coverage to Scrutinizer
|
|
uses: sudo-bot/action-scrutinizer@latest
|
|
# Do not run this step on forked versions of the main repository (example: contributor forks)
|
|
if: github.repository == 'phpmyadmin/phpmyadmin'
|
|
continue-on-error: true
|
|
with:
|
|
cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}"
|
|
|
|
- name: Send coverage to Codacy
|
|
uses: codacy/codacy-coverage-reporter-action@v1
|
|
# Do not run this step on forked versions of the main repository (example: contributor forks)
|
|
if: github.repository == 'phpmyadmin/phpmyadmin'
|
|
# Upload can fail on forks or if the secret is missing
|
|
continue-on-error: true
|
|
with:
|
|
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
|
coverage-reports: build/logs/clover.xml
|
|
|
|
test-php-optional-extensions:
|
|
name: Test on PHP (+ ext-${{ matrix.extension }}) ${{ matrix.php-version }} and ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
php-version: ["8.2"]
|
|
os: [ubuntu-latest]
|
|
extension: ["dbase"]
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
with:
|
|
# Fetch some commits for Scrutinizer coverage upload
|
|
fetch-depth: 15
|
|
|
|
- name: Install gettext
|
|
run: sudo apt-get install -y gettext
|
|
|
|
- name: Generate mo files
|
|
run: ./bin/generate-mo --quiet
|
|
|
|
- name: Set up PHP ${{ matrix.php-version }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-version }}
|
|
extensions: ${{ matrix.extension }}, mbstring, iconv, mysqli, zip, gd
|
|
coverage: xdebug
|
|
|
|
- name: Install Composer dependencies
|
|
uses: ramsey/composer-install@v3
|
|
|
|
- name: Run PHP tests
|
|
run: composer run phpunit -- --testsuite unit
|
|
|
|
- name: Send coverage
|
|
uses: codecov/codecov-action@v3
|
|
with:
|
|
flags: ${{ matrix.extension }}-extension
|
|
name: php-${{ matrix.php-version }}-${{ matrix.extension }}-enabled
|
|
|
|
- name: Send coverage to Scrutinizer
|
|
uses: sudo-bot/action-scrutinizer@latest
|
|
# Do not run this step on forked versions of the main repository (example: contributor forks)
|
|
if: github.repository == 'phpmyadmin/phpmyadmin'
|
|
continue-on-error: true
|
|
with:
|
|
cli-args: "--format=php-clover build/logs/clover.xml --revision=${{ github.event.pull_request.head.sha || github.sha }}"
|
|
|
|
- name: Send coverage to Codacy
|
|
uses: codacy/codacy-coverage-reporter-action@v1
|
|
# Do not run this step on forked versions of the main repository (example: contributor forks)
|
|
if: github.repository == 'phpmyadmin/phpmyadmin'
|
|
# Upload can fail on forks or if the secret is missing
|
|
continue-on-error: true
|
|
with:
|
|
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
|
coverage-reports: build/logs/clover.xml
|