Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2,084 changes: 0 additions & 2,084 deletions .drone.star

This file was deleted.

63 changes: 63 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: CI

on:
push:
branches:
- master
pull_request:
types:
- opened
- synchronize
- reopened

permissions:
contents: read

concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true

env:
APP_NAME: gallery
SPECIAL_APP_SETUP_COMMAND: composer install
PHP_VERSIONS: '["8.3"]'

jobs:
get-vars:
runs-on: ubuntu-latest
outputs:
app-name: ${{ env.APP_NAME }}
special-app-setup-command: ${{ env.SPECIAL_APP_SETUP_COMMAND }}
php-versions: ${{ env.PHP_VERSIONS }}
steps:
- name: Set variables
run: |
echo "App name $APP_NAME"
echo "Special App Setup Command: $SPECIAL_APP_SETUP_COMMAND"
echo "PHP versions string: $PHP_VERSIONS"

semantic-git-messages:
name: Commits
uses: owncloud/reusable-workflows/.github/workflows/semantic-git-message.yml@main

php-code-style:
name: PHP Code Style
needs:
- get-vars
uses: ./.github/workflows/php-codestyle.yml
with:
app-name: ${{ needs.get-vars.outputs.app-name }}
special-app-setup-command: ${{ needs.get-vars.outputs.special-app-setup-command }}
php-versions: ${{ needs.get-vars.outputs.php-versions }}
disable-phpstan: true
disable-phan: true

php-unit:
name: PHP Unit
needs:
- get-vars
uses: ./.github/workflows/php-unit.yml
with:
app-name: ${{ needs.get-vars.outputs.app-name }}
special-app-setup-command: ${{ needs.get-vars.outputs.special-app-setup-command }}
php-versions: ${{ needs.get-vars.outputs.php-versions }}
154 changes: 154 additions & 0 deletions .github/workflows/php-codestyle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
on:
workflow_call:
inputs:
app-name:
description: 'Name of the app'
required: true
type: string
php-versions:
description: JSON array of PHP versions
required: true
type: string
app-repository:
description: 'Repository of the app (optional, defaults to the current repository)'
required: false
type: string
default: ''
disable-phpstan:
description: 'Whether to disable PHPStan checks'
required: false
type: boolean
default: false
disable-phan:
description: 'Whether to disable Phan checks'
required: false
type: boolean
default: false
additional-app:
description: 'Additional app to enable for testing'
required: false
type: string
default: ''
additional-app-github-token:
description: 'GitHub PAT to access the additional app repo - required if private'
required: false
type: string
default: ''
additional-packages:
description: Additional Linux packages to be installed - space separated
required: false
type: string
default: ''
special-app-setup-command:
description: 'Command that needs to be executed after the app is checked out and PHP is available'
required: false
type: string
default: ''

jobs:
php-codestyle:
name: PHP Code Style
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: ${{ fromJSON(inputs.php-versions) }}

steps:
- name: Clone owncloud/core
uses: actions/checkout@v6
with:
repository: owncloud/core

- name: Checkout apps/${{ inputs.app-name }}
uses: actions/checkout@v6
with:
path: apps/${{ inputs.app-name }}
repository: ${{ inputs.app-repository }}

- name: Checkout apps/${{ inputs.additional-app }}
if: ${{ inputs.additional-app != '' }}
uses: actions/checkout@v6
with:
path: apps/${{ inputs.additional-app }}
repository: owncloud/${{ inputs.additional-app }}
token: ${{ inputs.additional-app-github-token || github.token }}

- name: Install Linux packages
if: ${{ inputs.additional-packages }}
run: |
sudo apt-get install ${{ inputs.additional-packages }}

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: apcu, ctype, curl, exif, fileinfo, gd, iconv, imagick, intl, json, mbstring, memcached, pdo, posix, simplexml, xml, zip, smbclient, ldap, krb5
ini-values: "memory_limit=1024M"
env:
fail-fast: true
KRB5_LINUX_LIBS: libkrb5-dev

- name: Install Core Dependencies
run: |
make

- name: Special app setup/${{ inputs.app-name }}
if: ${{ inputs.special-app-setup-command != '' }}
run: |
cd apps/${{ inputs.app-name }}
${{ inputs.special-app-setup-command }}

- name: Install Server
env:
DATA_DIRECTORY: ${{ github.workspace }}/data
DB_TYPE: "sqlite"
DB_NAME: owncloud
ADMIN_LOGIN: admin
ADMIN_PASSWORD: admin

run: |
install_cmd="maintenance:install -vvv \
--database=${DB_TYPE} \
--database-name=${DB_NAME} \
--admin-user=${ADMIN_LOGIN} \
--admin-pass=${ADMIN_PASSWORD} \
--data-dir=${DATA_DIRECTORY} "

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: Setup apps/${{ inputs.additional-app }}
if: ${{ inputs.additional-app != '' }}
run: |
( cd apps/${{ inputs.additional-app }} && make vendor || true)
php occ a:e ${{ inputs.additional-app }}

- name: Setup apps/${{ inputs.app-name }}
run: |
( cd apps/${{ inputs.app-name }} && make vendor || true)
php occ a:e ${{ inputs.app-name }}

- name: Run PHP Code Style Checks
run: |
cd apps/${{ inputs.app-name }}
make test-php-style

- name: Run PHP Stan
if: ${{ !inputs.disable-phpstan }}
run: |
cd apps/${{ inputs.app-name }}
make test-php-phpstan

- name: Run PHP Phan
if: ${{ !inputs.disable-phan }}
run: |
cd apps/${{ inputs.app-name }}
make test-php-phan

Loading