Skip to content

Add more tests

Add more tests #109

Workflow file for this run

name: phpunit-mysql
on:
push:
branches: [ main, test ]
pull_request:
branches: [ main ]
env:
APP_ID: gpxpod
jobs:
tests:
runs-on: ubuntu-latest
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
strategy:
fail-fast: false
matrix:
php-versions: ['8.3', '8.4']
server-versions: ['master']
exclude:
- php-versions: 8.4
server-versions: stable30
- php-versions: 8.1
server-versions: master
name: php${{ matrix.php-versions }}-mysql-${{ matrix.server-versions }}
services:
mysql:
image: mariadb:10.5
ports:
- 4444:3306/tcp
env:
MYSQL_ROOT_PASSWORD: rootpassword
options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Use Node 20
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
with:
node-version: 20
- name: Setup PHP
uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # v2.36.0
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, intl, sqlite3, curl, xml, json, zip, gd
ini-values: post_max_size=256M, max_execution_time=180
coverage: xdebug
tools: php-cs-fixer
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
- name: Setup Nextcloud
run: |
export DEBIAN_FRONTEND=noninteractive
#sudo apt update -y
#sudo apt install python3-pip git sudo unzip curl wget sed make rsync gpsbabel -y
sudo -H pip3 install anybadge
mkdir -p ~/html
echo "git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b ${{ matrix.server-versions }} ~/html/nextcloud"
git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b ${{ matrix.server-versions }} ~/html/nextcloud
#sed -i $'s|if (substr($fullPath, 0, strlen($root) + 1) === $root . \'/\')|if (is_string($root) and substr($fullPath, 0, strlen($root) + 1) === $root . \'/\')|g' ~/html/nextcloud/lib/autoloader.php
cp -r $GITHUB_WORKSPACE ~/html/nextcloud/apps/${{ env.APP_ID }}
# SETUP NEXTCLOUD
export DB_PORT=4444
echo "php ~/html/nextcloud/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 ~/html/nextcloud/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
cd ~/html/nextcloud/apps/${{ env.APP_ID }}
composer install --prefer-dist
php ~/html/nextcloud/occ app:enable --force ${{ env.APP_ID }}
echo "############### DELETE files_external that causes 'no such table: oc_external_mounts' when creating a file"
sudo rm -r ~/html/nextcloud/apps/files_external
php ~/html/nextcloud/occ maintenance:mode --off
echo "##### App is installed"
- name: Perform PhpUnit tests
run: |
cd ~/html/nextcloud/apps/${{ env.APP_ID }}
composer run test:unit && SUCCESS=yes || SUCCESS=no
if [ $SUCCESS = "yes" ]; then echo "TESTS PASSED"; else echo "TESTS FAILED"; exit 1; fi