release: v5.0.0 #6150
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors | |
# SPDX-License-Identifier: MIT | |
name: PHP Tests | |
on: pull_request | |
jobs: | |
unit-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-versions: [ '8.1', '8.2', '8.3' ] | |
nextcloud-versions: [ 'stable30' ] | |
name: php${{ matrix.php-versions }} on ${{ matrix.nextcloud-versions }} unit tests | |
env: | |
CI: true | |
XDEBUG_MODE: coverage | |
steps: | |
- name: Set up php${{ matrix.php-versions }} | |
uses: shivammathur/setup-php@868f02c3ff1a410930ea971284c9ea175e986284 | |
with: | |
php-version: ${{ matrix.php-versions }} | |
extensions: ctype, curl, dom, gd, gmp, iconv, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip | |
coverage: xdebug | |
- name: Checkout Nextcloud | |
run: git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b ${{ matrix.nextcloud-versions }} nextcloud | |
- name: Patch version check for nightly PHP | |
if: ${{ matrix.php-versions == '8.2' }} | |
run: echo "<?php" > nextcloud/lib/versioncheck.php | |
- name: Install Nextcloud | |
run: php -f nextcloud/occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database sqlite --database-pass='' | |
- name: Checkout the app | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
path: nextcloud/apps/calendar | |
- name: Install dependencies | |
working-directory: nextcloud/apps/calendar | |
run: composer install | |
- name: Run tests | |
working-directory: nextcloud/apps/calendar | |
run: composer run test | |
- name: Upload coverage to Codecov | |
if: ${{ matrix.nextcloud-versions == 'master' }} | |
uses: codecov/codecov-action@e28ff129e5465c2c0dcc6f003fc735cb6ae0c673 # v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: nextcloud/apps/calendar/clover.unit.xml | |
flags: php | |
fail_ci_if_error: ${{ !github.event.pull_request.head.repo.fork }} | |
verbose: true | |
integration-tests: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
php-versions: [ '8.1', '8.2', '8.3' ] | |
nextcloud-versions: [ 'stable30' ] | |
name: php${{ matrix.php-versions }} on ${{ matrix.nextcloud-versions }} integration tests | |
env: | |
CI: true | |
XDEBUG_MODE: coverage | |
steps: | |
- name: Set up php${{ matrix.php-versions }} | |
uses: shivammathur/setup-php@868f02c3ff1a410930ea971284c9ea175e986284 | |
with: | |
php-version: ${{ matrix.php-versions }} | |
extensions: ctype, curl, dom, gd, gmp, iconv, intl, json, mbstring, openssl, pdo_sqlite, posix, sqlite, xml, zip | |
coverage: xdebug | |
- name: Checkout Nextcloud | |
run: git clone https://github.com/nextcloud/server.git --recursive --depth 1 -b ${{ matrix.nextcloud-versions }} nextcloud | |
- name: Patch version check for nightly PHP | |
if: ${{ matrix.php-versions == '8.2' }} | |
run: echo "<?php" > nextcloud/lib/versioncheck.php | |
- name: Install Nextcloud | |
run: php -f nextcloud/occ maintenance:install --database-name oc_autotest --database-user oc_autotest --admin-user admin --admin-pass admin --database sqlite --database-pass='' | |
- name: Checkout the app | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
path: nextcloud/apps/calendar | |
- name: Install dependencies | |
working-directory: nextcloud/apps/calendar | |
run: composer install | |
- name: Install Calendar | |
run: php -f nextcloud/occ app:enable calendar | |
- name: Run tests | |
working-directory: nextcloud/apps/calendar | |
run: composer run test:integration | |
summary: | |
runs-on: ubuntu-latest | |
needs: | |
- unit-tests | |
- integration-tests | |
if: always() | |
name: php-test-summary | |
steps: | |
- name: Unit test status | |
run: if ${{ needs.unit-tests.result != 'success' && needs.unit-tests.result != 'skipped' }}; then exit 1; fi | |
- name: Integration test status | |
run: if ${{ needs.integration-tests.result != 'success' && needs.integration-tests.result != 'skipped' }}; then exit 1; fi | |