Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
chore(tests): Migrate mariadb tests from drone to GitHub
Signed-off-by: Ferdinand Thiessen <[email protected]>
  • Loading branch information
susnux authored and nickvergessen committed Jan 26, 2024
commit 4e7ff6d7f7df141a1d6a33df73f1cb1c5a335bf3
114 changes: 0 additions & 114 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -270,120 +270,6 @@ trigger:
- pull_request
- push

---
kind: pipeline
name: mariadb10.2-php8.0

steps:
- name: submodules
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
commands:
- git submodule update --init
- name: mariadb10.2-php8.0
image: ghcr.io/nextcloud/continuous-integration-php8.0:latest
commands:
- bash tests/drone-run-php-tests.sh || exit 0
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb

services:
- name: cache
image: ghcr.io/nextcloud/continuous-integration-redis:latest
- name: mariadb
image: ghcr.io/nextcloud/continuous-integration-mariadb-10.2:10.2
environment:
MYSQL_ROOT_PASSWORD: owncloud
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: owncloud
MYSQL_DATABASE: oc_autotest
command:
- --sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
tmpfs:
- /var/lib/mysql

trigger:
branch:
- master
- stable*
event:
- pull_request
- push

---
kind: pipeline
name: mariadb10.4-php8.0

steps:
- name: submodules
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
commands:
- git submodule update --init
- name: mariadb10.4-php8.0
image: ghcr.io/nextcloud/continuous-integration-php8.0:latest
commands:
- bash tests/drone-run-php-tests.sh || exit 0
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb

services:
- name: cache
image: ghcr.io/nextcloud/continuous-integration-redis:latest
- name: mariadb
image: ghcr.io/nextcloud/continuous-integration-mariadb-10.4:10.4
environment:
MYSQL_ROOT_PASSWORD: owncloud
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: owncloud
MYSQL_DATABASE: oc_autotest
command:
- --sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
tmpfs:
- /var/lib/mysql

trigger:
branch:
- master
- stable*
event:
- pull_request
- push

---
kind: pipeline
name: mariadb10.6-php8.0

steps:
- name: submodules
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
commands:
- git submodule update --init
- name: mariadb10.6-php8.0
image: ghcr.io/nextcloud/continuous-integration-php8.0:latest
commands:
- bash tests/drone-run-php-tests.sh || exit 0
- NOCOVERAGE=true TEST_SELECTION=DB ./autotest.sh mariadb

services:
- name: cache
image: ghcr.io/nextcloud/continuous-integration-redis:latest
- name: mariadb
image: ghcr.io/nextcloud/continuous-integration-mariadb-10.6:latest
environment:
MYSQL_ROOT_PASSWORD: owncloud
MYSQL_USER: oc_autotest
MYSQL_PASSWORD: owncloud
MYSQL_DATABASE: oc_autotest
command:
- --sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
tmpfs:
- /var/lib/mysql

trigger:
branch:
- master
- stable*
event:
- pull_request
- push

---
kind: pipeline
name: postgres10-php8.0
Expand Down
147 changes: 147 additions & 0 deletions .github/workflows/phpunit-mariadb.yml
Original file line number Diff line number Diff line change
@@ -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