Skip to content

Add support for bearer token validation by the OIDC Identity Provider app via en event #1477

Add support for bearer token validation by the OIDC Identity Provider app via en event

Add support for bearer token validation by the OIDC Identity Provider app via en event #1477

Workflow file for this run

# SPDX-FileCopyrightText: 2021-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: MIT
name: Integration tests
on:
pull_request:
push:
branches:
- main
- master
- stable*
env:
APP_NAME: user_oidc
jobs:
integration:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php-versions: ['8.1']
databases: ['sqlite', 'mysql', 'pgsql']
server-versions: ['master']
include:
- php-versions: 8.1
databases: mysql
server-versions: stable26
- php-versions: 8.1
databases: mysql
server-versions: stable27
- php-versions: 8.1
databases: mysql
server-versions: stable28
- php-versions: 8.1
databases: mysql
server-versions: stable29
- php-versions: 8.1
databases: mysql
server-versions: stable30
- php-versions: 8.1
databases: mysql
server-versions: stable31
- php-versions: 8.1
databases: mysql
server-versions: master
- php-versions: 8.2
databases: mysql
server-versions: master
- php-versions: 8.3
databases: mysql
server-versions: master
name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
services:
postgres:
image: postgres:14
ports:
- 4445:5432/tcp
env:
POSTGRES_USER: root
POSTGRES_PASSWORD: rootpassword
POSTGRES_DB: nextcloud
options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
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:
- name: Checkout server
uses: actions/[email protected]
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
- name: Checkout app
uses: actions/[email protected]
with:
path: apps/${{ env.APP_NAME }}
- name: Start keycloak
run: |
docker-compose -f "docker-compose.integration.yml" up -d --build \
|| docker compose -f "docker-compose.integration.yml" up -d --build
working-directory: apps/${{ env.APP_NAME }}/tests/
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
tools: phpunit
extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
coverage: none
- name: Set up PHPUnit
working-directory: apps/${{ env.APP_NAME }}
run: composer i
- name: Set up Nextcloud
run: |
if [ "${{ matrix.databases }}" = "mysql" ]; then
export DB_PORT=4444
elif [ "${{ matrix.databases }}" = "pgsql" ]; then
export DB_PORT=4445
fi
mkdir data
./occ maintenance:install --verbose --database=${{ matrix.databases }} --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
./occ user:list
./occ app:enable --force ${{ env.APP_NAME }}
./occ config:system:set allow_local_remote_servers --value true --type bool
./occ config:system:set debug --value true --type bool
cat config/config.php
./occ user_oidc:provider nextcloudci -c nextcloud -s ff75b7c7-20f9-460b-b27c-16bd5d9b4cd0 -d http://127.0.0.1:8999/auth/realms/nextcloudci/.well-known/openid-configuration
php -S localhost:8080 &
curl -v http://127.0.0.1:8999/auth/realms/nextcloudci/.well-known/openid-configuration
- name: Run integration tests
working-directory: apps/${{ env.APP_NAME }}
run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
- name: Dump nextcloud.log
if: always()
run: cat data/nextcloud.log
- name: Stop containers
if: always()
run: |
docker-compose -f "docker-compose.integration.yml" down \
|| docker compose -f "docker-compose.integration.yml" down
working-directory: apps/${{ env.APP_NAME }}/tests/