mirror of
https://github.com/nextcloud/server.git
synced 2026-06-28 18:11:31 -04:00
10.6 will be EOL when Nextcloud 35 is released, similar to 10.3 its still somewhat supported for enterprise Ubuntu 22.04. So as we dropped 20.04 support we can increase that exception to 10.6. Now MariaDB is supported with active LTS version 10.11 to 12.3 (new LTS). Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
145 lines
4.6 KiB
YAML
145 lines
4.6 KiB
YAML
# 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
|
|
#
|
|
# SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
name: PHPUnit MariaDB
|
|
|
|
on:
|
|
pull_request:
|
|
schedule:
|
|
- cron: "5 2 * * *"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: phpunit-mariadb-${{ github.head_ref || github.run_id }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
changes:
|
|
runs-on: ubuntu-latest-low
|
|
permissions:
|
|
contents: read
|
|
pull-requests: read
|
|
|
|
outputs:
|
|
src: ${{ steps.changes.outputs.src}}
|
|
|
|
steps:
|
|
- uses: dorny/paths-filter@fbd0ab8f3e69293af611ebaee6363fc25e6d187d # v4.0.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:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- mariadb-versions: '10.11'
|
|
php-versions: '8.3'
|
|
- mariadb-versions: '12.3'
|
|
php-versions: '8.5'
|
|
|
|
name: MariaDB ${{ matrix.mariadb-versions }} (PHP ${{ matrix.php-versions }}) - database tests
|
|
|
|
services:
|
|
cache:
|
|
image: ghcr.io/nextcloud/continuous-integration-redis:latest # zizmor: ignore[unpinned-images]
|
|
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="${{ matrix.mariadb-versions <= 10.4 && 'mysqladmin' || 'mariadb-admin'}} ping" --health-interval 5s --health-timeout 2s --health-retries 5
|
|
|
|
steps:
|
|
- name: Checkout server
|
|
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
submodules: true
|
|
|
|
- name: Set up php ${{ matrix.php-versions }}
|
|
uses: shivammathur/setup-php@7c071dfe9dc99bdf297fa79cb49ea005b9fcadbc # v2.37.1
|
|
timeout-minutes: 5
|
|
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
|
|
ini-values: disable_functions=""
|
|
env:
|
|
fail-fast: true
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Set up dependencies
|
|
run: composer i
|
|
|
|
- name: Enable ONLY_FULL_GROUP_BY MariaDB option
|
|
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
|
|
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
|
|
|
|
- name: PHPUnit
|
|
run: composer run test:db -- --log-junit junit.xml
|
|
env:
|
|
DB_ROOT_USER: root
|
|
DB_ROOT_PASS: rootpassword
|
|
|
|
summary:
|
|
permissions:
|
|
contents: none
|
|
runs-on: ubuntu-latest-low
|
|
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
|