Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas <jonas@freesources.org>2022-02-08 15:49:31 +0300
committerJonas <jonas@freesources.org>2022-02-08 17:00:01 +0300
commit809226b4e967636977756c3af35ec2fbb9c4146b (patch)
tree6617c1168f036dcc52fe1c7efc9081f9976d0b65
parentb73651e1060da43b8f3d9db154530c6ade1da123 (diff)
Migrate phpunit tests from drone to github actions (Fixes: #1679)
Only test with sqlite and oc for now. There's no added value to run our basic phpunit test on mysql and postgresql environments. Also drops the obsolete `occ app:check-code` compatibility tests. Signed-off-by: Jonas <jonas@freesources.org>
-rw-r--r--.drone.yml137
-rw-r--r--.github/workflows/phpunit.yml (renamed from .github/workflows/oci.yml)63
-rw-r--r--README.md2
-rw-r--r--tests/drone-server-install.sh138
-rw-r--r--tests/drone-server-setup.sh65
5 files changed, 45 insertions, 360 deletions
diff --git a/.drone.yml b/.drone.yml
deleted file mode 100644
index 1963b2b72..000000000
--- a/.drone.yml
+++ /dev/null
@@ -1,137 +0,0 @@
-kind: pipeline
-name: compatibility
-steps:
- - name: compatibility
- image: nextcloudci/php7.4:latest
- environment:
- APP_NAME: text
- CORE_BRANCH: master
- DB: sqlite
- commands:
- - composer install
- - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- - cd ../server
- - ./occ app:check-code $APP_NAME -c strong-comparison
- - ./occ app:check-code $APP_NAME -c deprecation
-trigger:
- branch:
- - master
- - stable*
- event:
- - pull_request
- - push
----
-kind: pipeline
-name: php-sqlite
-steps:
- - name: php7.4
- image: nextcloudci/php7.4:latest
- environment:
- APP_NAME: text
- CORE_BRANCH: master
- DB: sqlite
- commands:
- - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- - cd ../server/apps/$APP_NAME
- - composer install
- - phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- - name: php8.0
- image: nextcloudci/php8.0:latest
- environment:
- APP_NAME: text
- CORE_BRANCH: master
- DB: sqlite
- commands:
- - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- - cd ../server/apps/$APP_NAME
- - composer install
- - phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
-trigger:
- branch:
- - master
- - stable*
- event:
- - pull_request
- - push
----
-kind: pipeline
-name: php-mysql
-steps:
- - name: php7.4
- image: nextcloudci/php7.4:latest
- environment:
- APP_NAME: text
- CORE_BRANCH: master
- DB: mysql
- commands:
- - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- - cd ../server/apps/$APP_NAME
- - composer install
- - phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- #- name: php8.0
- # image: nextcloudci/php8.0:latest
- # environment:
- # APP_NAME: text
- # CORE_BRANCH: master
- # DB: mysql
- # commands:
- # - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- # - cd ../server/apps/$APP_NAME
- # - composer install
- # - phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
-services:
- - name: mysql
- image: mysql:5.7.22
- environment:
- MYSQL_ROOT_PASSWORD: owncloud
- MYSQL_USER: oc_autotest
- MYSQL_PASSWORD: owncloud
- MYSQL_DATABASE: oc_autotest
- command: [ "--innodb_large_prefix=true", "--innodb_file_format=barracuda", "--innodb_file_per_table=true" ]
-trigger:
- branch:
- - master
- - stable*
- event:
- - pull_request
- - push
----
-kind: pipeline
-name: php-postgres
-steps:
- - name: php7.4
- image: nextcloudci/php7.4:latest
- environment:
- APP_NAME: text
- CORE_BRANCH: master
- DB: postgres
- commands:
- - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- - cd ../server/apps/$APP_NAME
- - composer install
- - phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
- #- name: php8.0
- # image: nextcloudci/php8.0:latest
- # environment:
- # APP_NAME: text
- # CORE_BRANCH: master
- # DB: postgres
- # commands:
- # - bash ./tests/drone-server-setup.sh $APP_NAME $CORE_BRANCH $DB
- # - cd ../server/apps/$APP_NAME
- # - composer install
- # - phpunit -c tests/phpunit.xml --coverage-clover build/php-unit.coverage.xml
-services:
- - name: postgres
- image: postgres:10
- environment:
- POSTGRES_USER: oc_autotest
- POSTGRES_DB: oc_autotest_dummy
- POSTGRES_PASSWORD: owncloud
-trigger:
- branch:
- - master
- - stable*
- event:
- - pull_request
- - push
diff --git a/.github/workflows/oci.yml b/.github/workflows/phpunit.yml
index 18a75d9c0..7d0905bfb 100644
--- a/.github/workflows/oci.yml
+++ b/.github/workflows/phpunit.yml
@@ -2,10 +2,6 @@ name: PHPUnit
on:
pull_request:
- paths:
- - 'appinfo/**'
- - 'lib/**'
- - 'tests/**'
push:
branches:
- master
@@ -15,6 +11,43 @@ env:
APP_NAME: text
jobs:
+ php:
+ runs-on: ubuntu-latest
+
+ strategy:
+ # do not stop on another job's failure
+ fail-fast: false
+ matrix:
+ php-versions: ['7.4', '8.0']
+ databases: ['sqlite']
+ server-versions: ['master']
+
+ name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
+
+ steps:
+ - name: Checkout server
+ uses: actions/checkout@v2
+ with:
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+ submodules: true
+
+ - name: Checkout app
+ uses: actions/checkout@v2
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ tools: phpunit
+ extensions: mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, gd, zip
+
+ - name: Set up PHPUnit
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer i
+
oci:
runs-on: ubuntu-latest
@@ -22,7 +55,7 @@ jobs:
# do not stop on another job's failure
fail-fast: false
matrix:
- php-versions: ['7.4']
+ php-versions: ['7.4', '8.0']
databases: ['oci']
server-versions: ['master']
@@ -40,13 +73,7 @@ jobs:
with:
repository: nextcloud/server
ref: ${{ matrix.server-versions }}
-
- - name: Checkout submodules
- shell: bash
- run: |
- auth_header="$(git config --local --get http.https://github.com/.extraheader)"
- git submodule sync --recursive
- git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
+ submodules: true
- name: Checkout app
uses: actions/checkout@v2
@@ -54,11 +81,11 @@ jobs:
path: apps/${{ env.APP_NAME }}
- name: Set up php ${{ matrix.php-versions }}
- uses: "shivammathur/setup-php@v2"
+ uses: shivammathur/setup-php@v2
with:
- php-version: "${{ matrix.php-versions }}"
+ php-version: ${{ matrix.php-versions }}
+ tools: phpunit
extensions: mbstring, iconv, fileinfo, intl, oci8
- tools: phpunit:8.5.2
coverage: none
- name: Set up PHPUnit
@@ -69,10 +96,8 @@ jobs:
run: |
mkdir data
./occ maintenance:install --verbose --database=oci --database-name=XE --database-host=127.0.0.1 --database-port=1521 --database-user=autotest --database-pass=owncloud --admin-user admin --admin-pass admin
- php -f index.php
./occ app:enable --force ${{ env.APP_NAME }}
- name: PHPUnit
- working-directory: apps/${{ env.APP_NAME }}/tests
- run: phpunit -c phpunit.xml
-
+ working-directory: apps/${{ env.APP_NAME }}
+ run: phpunit -c tests/phpunit.xml
diff --git a/README.md b/README.md
index 635b13e4b..6149da14f 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# Nextcloud Text
-[![Drone (self-hosted) with branch](https://img.shields.io/drone/build/nextcloud/text/master?server=https%3A%2F%2Fdrone.nextcloud.com)](https://drone.nextcloud.com/nextcloud/text)
+![GitHub Workflow Status](https://img.shields.io/github/workflow/status/nextcloud/text/Node)
[![Start contributing](https://img.shields.io/github/issues/nextcloud/text/good%20first%20issue?color=7057ff&label=Contribute)](https://github.com/nextcloud/text/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3A%22good+first+issue%22)
diff --git a/tests/drone-server-install.sh b/tests/drone-server-install.sh
deleted file mode 100644
index 65559056f..000000000
--- a/tests/drone-server-install.sh
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/bin/bash
-# TODO: move this out of the repo to make it usable in other apps
-
-set -e
-
-DATABASENAME=oc_autotest
-DATABASEUSER=oc_autotest
-[ -z "$DATABASEHOST" ] && DATABASEHOST="localhost"
-ADMINLOGIN=admin
-BASEDIR=$PWD
-
-DBCONFIGS="sqlite mysql pgsql oracle"
-PHPUNIT=$(which phpunit)
-
-if [ $1 ]; then
- FOUND=0
- for DBCONFIG in $DBCONFIGS; do
- if [ $1 = $DBCONFIG ]; then
- FOUND=1
- break
- fi
- done
- if [ $FOUND = 0 ]; then
- echo -e "Unknown database config name \"$1\"\n" >&2
- print_syntax
- exit 2
- fi
-fi
-
-# use tmpfs for datadir - should speedup unit test execution
-DATADIR=$BASEDIR/data-autotest
-
-echo "Using $1 database $DATABASENAME"
-
-# create autoconfig for sqlite, mysql and postgresql
-cat > ./tests/autoconfig-sqlite.php <<DELIM
-<?php
-\$AUTOCONFIG = array (
- 'installed' => false,
- 'dbtype' => 'sqlite',
- 'dbtableprefix' => 'oc_',
- 'adminlogin' => '$ADMINLOGIN',
- 'adminpass' => 'admin',
- 'directory' => '$DATADIR',
-);
-DELIM
-
-cat > ./tests/autoconfig-mysql.php <<DELIM
-<?php
-\$AUTOCONFIG = array (
- 'installed' => false,
- 'dbtype' => 'mysql',
- 'dbtableprefix' => 'oc_',
- 'adminlogin' => '$ADMINLOGIN',
- 'adminpass' => 'admin',
- 'directory' => '$DATADIR',
- 'dbuser' => '$DATABASEUSER',
- 'dbname' => '$DATABASENAME',
- 'dbhost' => '$DATABASEHOST',
- 'dbpass' => 'owncloud',
-);
-DELIM
-
-cat > ./tests/autoconfig-pgsql.php <<DELIM
-<?php
-\$AUTOCONFIG = array (
- 'installed' => false,
- 'dbtype' => 'pgsql',
- 'dbtableprefix' => 'oc_',
- 'adminlogin' => '$ADMINLOGIN',
- 'adminpass' => 'admin',
- 'directory' => '$DATADIR',
- 'dbuser' => '$DATABASEUSER',
- 'dbname' => '$DATABASENAME',
- 'dbhost' => '$DATABASEHOST',
- 'dbpass' => 'owncloud',
-);
-DELIM
-
-cat > ./tests/autoconfig-oracle.php <<DELIM
-<?php
-\$AUTOCONFIG = array (
- 'installed' => false,
- 'dbtype' => 'oci',
- 'dbtableprefix' => 'oc_',
- 'adminlogin' => '$ADMINLOGIN',
- 'adminpass' => 'admin',
- 'directory' => '$DATADIR',
- 'dbuser' => 'autotest',
- 'dbname' => 'XE',
- 'dbhost' =>'$DATABASEHOST',
- 'dbpass' => 'owncloud',
- 'loglevel' => 0,
-);
-DELIM
-
-function run_install {
- echo "Setup environment for $1 testing ..."
- # back to root folder
- cd $BASEDIR
-
- # revert changes to tests/data
- git checkout tests/data/*
-
- # reset data directory
- rm -rf $DATADIR
- mkdir $DATADIR
- touch $DATADIR/nextcloud.log
-
- cp tests/preseed-config.php config/config.php
-
- # copy autoconfig
- cp $BASEDIR/tests/autoconfig-$1.php $BASEDIR/config/autoconfig.php
-
- # trigger installation
- echo "INDEX"
- php -f index.php
- echo "END INDEX"
-
-}
-
-function print_config {
-
- echo "nextcloud configuration:"
- cat $BASEDIR/config/config.php
-
- echo "data directory:"
- ls -ll $DATADIR
-
- echo "nextcloud.log:"
- [[ -f "$DATADIR/nextcloud.log" ]] && cat $DATADIR/nextcloud.log
-
-}
-
-run_install $1
-print_config
-
-cd $BASEDIR \ No newline at end of file
diff --git a/tests/drone-server-setup.sh b/tests/drone-server-setup.sh
deleted file mode 100644
index 8d754c65b..000000000
--- a/tests/drone-server-setup.sh
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-#
-# ownCloud
-#
-# @author Thomas Müller
-# @copyright 2014 Thomas Müller thomas.mueller@tmit.eu
-#
-
-# TODO: move this out of the repo to make it usable in other apps
-
-set -e
-
-WORKDIR=$PWD
-APP_NAME=$1
-CORE_BRANCH=$2
-DB=$3
-echo "Work directory: $WORKDIR"
-echo "Database: $DB"
-
-# Cloning server
-cd ..
-git clone --depth 1 -b $CORE_BRANCH https://github.com/nextcloud/server
-cd server
-git submodule update --init
-
-# Move app into apps folder
-cd apps
-cp -R $WORKDIR/ $APP_NAME
-cd $WORKDIR
-
-[[ -z "$DATABASEHOST" ]] && DATABASEHOST="$DB"
-
-if [[ "$DB" == "mysql" ]] ; then
- echo "Waiting for MySQL initialisation ..."
- if ! ../server/apps/files_external/tests/env/wait-for-connection $DATABASEHOST 3306 600; then
- echo "[ERROR] Waited 600 seconds, no response" >&2
- exit 1
- fi
-fi
-
-if [[ "$DB" == "postgres" ]] ; then
- echo "Waiting for Postgres to be available ..."
- if ! ../server/apps/files_external/tests/env/wait-for-connection $DATABASEHOST 5432 60; then
- echo "[ERROR] Waited 60 seconds for $DATABASEHOST, no response" >&2
- exit 1
- fi
- echo "Give it 10 additional seconds ..."
- sleep 10
- # Temporary fix since core_install uses pgsql
- DB="pgsql"
-fi
-
-# TODO: oracle
-export DATABASEHOST="$DATABASEHOST"
-
-echo "Installing server"
-cd ../server
-bash $WORKDIR/tests/drone-server-install.sh $DB
-
-echo "Installing app: $APP_NAME"
-php occ app:enable $APP_NAME
-
-cd apps/$APP_NAME
-pwd
-ls /drone/src