mirror of https://github.com/nextcloud/server.git
chore(tests): Migrate `mariadb` tests from drone to GitHub
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>pull/41003/head
parent
6a933b2848
commit
4e7ff6d7f7
@ -0,0 +1,147 @@
|
|||||||
|
# This workflow is provided via the organization template repository
|
||||||
|
#
|
||||||
|
# https://github.com/nextcloud/.github
|
||||||
|
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||||
|
|
||||||
|
name: PHPUnit mariadb
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
- stable*
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
concurrency:
|
||||||
|
group: phpunit-mariadb-${{ github.head_ref || github.run_id }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
changes:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
src: ${{ steps.changes.outputs.src}}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
|
||||||
|
id: changes
|
||||||
|
continue-on-error: true
|
||||||
|
with:
|
||||||
|
filters: |
|
||||||
|
src:
|
||||||
|
- '.github/workflows/**'
|
||||||
|
- '3rdparty/**'
|
||||||
|
- '**/appinfo/**'
|
||||||
|
- '**/lib/**'
|
||||||
|
- '**/templates/**'
|
||||||
|
- '**/tests/**'
|
||||||
|
- 'vendor/**'
|
||||||
|
- 'vendor-bin/**'
|
||||||
|
- '.php-cs-fixer.dist.php'
|
||||||
|
- 'composer.json'
|
||||||
|
- 'composer.lock'
|
||||||
|
- '**.php'
|
||||||
|
|
||||||
|
phpunit-mariadb:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
needs: changes
|
||||||
|
if: needs.changes.outputs.src != 'false'
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-versions: ['8.0']
|
||||||
|
mariadb-versions: ['10.3', '10.4', '10.5', '10.6', '10.11']
|
||||||
|
include:
|
||||||
|
- php-versions: '8.3'
|
||||||
|
mariadb-versions: '10.6'
|
||||||
|
|
||||||
|
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
|
||||||
|
|
||||||
|
services:
|
||||||
|
cache:
|
||||||
|
image: ghcr.io/nextcloud/continuous-integration-redis:latest
|
||||||
|
ports:
|
||||||
|
- 6379:6379/tcp
|
||||||
|
options: --health-cmd="redis-cli ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||||
|
|
||||||
|
mariadb:
|
||||||
|
image: mariadb:${{ matrix.mariadb-versions }}
|
||||||
|
ports:
|
||||||
|
- 4444:3306/tcp
|
||||||
|
env:
|
||||||
|
MYSQL_ROOT_PASSWORD: rootpassword
|
||||||
|
MYSQL_USER: oc_autotest
|
||||||
|
MYSQL_PASSWORD: nextcloud
|
||||||
|
MYSQL_DATABASE: oc_autotest
|
||||||
|
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout server
|
||||||
|
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Set up php ${{ matrix.php-versions }}
|
||||||
|
uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php-versions }}
|
||||||
|
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
|
||||||
|
extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, redis, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
|
||||||
|
coverage: none
|
||||||
|
ini-file: development
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up dependencies
|
||||||
|
run: composer i
|
||||||
|
|
||||||
|
- name: Wait for MariaDB
|
||||||
|
id: check_mariadb_up
|
||||||
|
run: |
|
||||||
|
apps/files_external/tests/env/wait-for-connection localhost 4444 30
|
||||||
|
|
||||||
|
- name: Enable ONLY_FULL_GROUP_BY MySQL option
|
||||||
|
if: steps.check_mariadb_up.outcome == 'success'
|
||||||
|
run: |
|
||||||
|
echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||||
|
echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
|
||||||
|
|
||||||
|
- name: Set up Nextcloud
|
||||||
|
if: steps.check_mariadb_up.outcome == 'success'
|
||||||
|
env:
|
||||||
|
DB_PORT: 4444
|
||||||
|
run: |
|
||||||
|
mkdir data
|
||||||
|
cp tests/redis.config.php config/
|
||||||
|
cp tests/preseed-config.php config/config.php
|
||||||
|
./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
|
||||||
|
php -f tests/enable_all.php | grep -i -C9999 error && echo "Error during app setup" && exit 1 || exit 0
|
||||||
|
|
||||||
|
- name: PHPUnit
|
||||||
|
if: steps.check_mariadb_up.outcome == 'success'
|
||||||
|
run: composer run test:db
|
||||||
|
|
||||||
|
- name: Print logs
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
cat data/nextcloud.log
|
||||||
|
|
||||||
|
summary:
|
||||||
|
permissions:
|
||||||
|
contents: none
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [changes, phpunit-mariadb]
|
||||||
|
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
name: phpunit-mariadb-summary
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Summary status
|
||||||
|
run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mariadb.result != 'success' }}; then exit 1; fi
|
Loading…
Reference in New Issue