-
Notifications
You must be signed in to change notification settings - Fork 2.1k
122 lines (109 loc) · 3.51 KB
/
php-unit.yml
File metadata and controls
122 lines (109 loc) · 3.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
on:
workflow_call:
inputs:
php-versions:
description: JSON array of PHP versions
required: true
type: string
permissions:
contents: read
jobs:
php-unit:
name: PHP Unit
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: ${{ fromJSON(inputs.php-versions) }}
database: [sqlite]
include:
- php: "8.3"
database: "mysql:8.0"
- php: "8.3"
database: "mariadb:10.6"
- php: "8.3"
database: "mariadb:10.11"
- php: "8.3"
database: "postgres:10.21"
services:
mysql:
image: >-
${{ (startsWith(matrix.database,'mysql:') || startsWith(matrix.database,'mariadb:')) && matrix.database || '' }}
env:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: owncloud
MYSQL_USER: owncloud
MYSQL_PASSWORD: owncloud
options: >-
--health-cmd="mysqladmin ping -u root -ppassword"
--health-interval=10s
--health-timeout=5s
--health-retries=3
ports:
- 3306:3306
postgres:
image: ${{ startsWith(matrix.database,'postgres:') && matrix.database || '' }}
env:
POSTGRES_DB: owncloud
POSTGRES_USER: owncloud
POSTGRES_PASSWORD: owncloud
ports:
- 5432:5432
steps:
- name: Clone owncloud/core
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
repository: owncloud/core
- name: Setup PHP
uses: shivammathur/setup-php@accd6127cb78bee3e8082180cb391013d204ef9f # v2.37.0
with:
php-version: ${{ matrix.php }}
extensions: curl, gd, json, xml, zip, imagick
ini-values: "memory_limit=2048M"
- name: Install ffmpeg & imagemagick
run: |
sudo apt-get update
sudo apt-get install -y ffmpeg imagemagick
- name: Install Composer dependencies
run: |
make install-composer-deps
- name: Install Server
env:
DATA_DIRECTORY: ${{ github.workspace }}/data
DB: ${{ matrix.database }}
DB_NAME: owncloud
ADMIN_LOGIN: admin
ADMIN_PASSWORD: admin
DB_HOST: 127.0.0.1
DB_USERNAME: owncloud
DB_PASSWORD: owncloud
run: |
DB_TYPE=${DB%:*}
if [ $DB_TYPE == "postgres" ] ; then DB_TYPE="pgsql"; fi
if [ $DB_TYPE == "mariadb" ] ; then DB_TYPE="mysql"; fi
install_cmd="maintenance:install -vvv \
--database=${DB_TYPE} \
--database-name=${DB_NAME} \
--admin-user=${ADMIN_LOGIN} \
--admin-pass=${ADMIN_PASSWORD} \
--data-dir=${DATA_DIRECTORY} "
if [[ "${DB_TYPE}" != "sqlite" ]]; then
install_cmd+=" --database-host=${DB_HOST} \
--database-user=${DB_USERNAME} \
--database-pass=${DB_PASSWORD}"
fi
php occ ${install_cmd}
echo "enabling apps"
php occ app:enable files_sharing
php occ app:enable files_trashbin
php occ app:enable files_versions
php occ app:enable provisioning_api
php occ app:enable federation
php occ app:enable federatedfilesharing
- name: Run PHPUnit
run: |
bash tests/drone/test-phpunit.sh
- name: Tail logs
if: failure()
run: |
cat data/owncloud.log