mirror of
https://github.com/chylex/Nextcloud-News.git
synced 2024-10-16 23:42:49 +02:00
d11f0cafab
Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
162 lines
4.7 KiB
YAML
162 lines
4.7 KiB
YAML
name: Integration Tests
|
|
on:
|
|
pull_request
|
|
|
|
env:
|
|
POSTGRES_PASSWORD: nc_test_db
|
|
MYSQL_USER: nc_test
|
|
MYSQL_PASSWORD: nc_test_db
|
|
MYSQL_DATABASE: nc_test
|
|
MYSQL_PORT: 3800
|
|
|
|
jobs:
|
|
integration:
|
|
runs-on: ubuntu-latest
|
|
continue-on-error: ${{ matrix.experimental }}
|
|
name: "Integration: Nextcloud ${{ matrix.nextcloud }} - PHP ${{ matrix.php-versions }} - DB ${{ matrix.database }}"
|
|
services:
|
|
postgres:
|
|
image: postgres:14
|
|
env:
|
|
POSTGRES_PASSWORD: ${{ env.POSTGRES_PASSWORD }}
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432 # Maps tcp port 5432 on service container to the host
|
|
strategy:
|
|
matrix:
|
|
php-versions: ['8.0', '8.1']
|
|
nextcloud: ['stable24', 'stable25', 'stable26']
|
|
database: ['sqlite', 'pgsql', 'mysql']
|
|
experimental: [false]
|
|
include:
|
|
- php-versions: 8.1
|
|
nextcloud: pre-release
|
|
database: sqlite
|
|
experimental: true
|
|
- php-versions: 8.2
|
|
nextcloud: pre-release
|
|
database: sqlite
|
|
experimental: true
|
|
- php-versions: 7.4
|
|
nextcloud: stable24
|
|
database: sqlite
|
|
experimental: false
|
|
- php-versions: 8.2
|
|
nextcloud: stable26
|
|
database: sqlite
|
|
experimental: false
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-versions }}
|
|
extensions: pdo_sqlite,pdo_mysql,pdo_pgsql,gd,zip
|
|
coverage: none
|
|
|
|
- name: Setup BATS & httpie
|
|
run: sudo apt-get install -y httpie && npm install -g bats@1.7.0
|
|
|
|
### MySQL specific setup
|
|
- name: Setup mysql
|
|
if: matrix.database == 'mysql'
|
|
uses: getong/mariadb-action@v1.1
|
|
with:
|
|
mariadb version: '10.5'
|
|
host port: ${{ env.MYSQL_PORT }}
|
|
mysql database: ${{ env.MYSQL_DATABASE }}
|
|
mysql root password: ${{ env.MYSQL_PASSWORD }}
|
|
mysql user: ${{ env.MYSQL_USER }}
|
|
mysql password: ${{ env.MYSQL_PASSWORD }}
|
|
|
|
- name: Set up server MySQL
|
|
if: matrix.database == 'mysql'
|
|
uses: SMillerDev/nextcloud-actions/setup-nextcloud@main
|
|
with:
|
|
version: ${{ matrix.nextcloud }}
|
|
cron: true
|
|
database-type: ${{ matrix.database }}
|
|
database-host: 127.0.0.1
|
|
database-port: ${{ env.MYSQL_PORT }}
|
|
database-name: ${{ env.MYSQL_DATABASE }}
|
|
database-user: root
|
|
database-password: ${{ env.MYSQL_PASSWORD }}
|
|
|
|
### Back to normal setup
|
|
- name: Set up server non MySQL
|
|
if: matrix.database != 'mysql'
|
|
uses: SMillerDev/nextcloud-actions/setup-nextcloud@main
|
|
with:
|
|
version: ${{ matrix.nextcloud }}
|
|
cron: true
|
|
database-type: ${{ matrix.database }}
|
|
database-host: localhost
|
|
database-port: 5432
|
|
database-name: postgres
|
|
database-user: postgres
|
|
database-password: ${{ env.POSTGRES_PASSWORD }}
|
|
|
|
- name: Prime app build
|
|
run: make
|
|
|
|
- name: Configure server with app
|
|
uses: SMillerDev/nextcloud-actions/setup-nextcloud-app@main
|
|
with:
|
|
app: 'news'
|
|
check-code: false
|
|
force: ${{ matrix.experimental }}
|
|
|
|
- name: Run API tests
|
|
working-directory: ../server
|
|
run: |
|
|
php -S localhost:8080 &> /tmp/webserver.log &
|
|
cd apps/news/tests/test_helper/feeds && php -S localhost:8090 &> /tmp/feedserver.log &
|
|
|
|
sleep 2
|
|
|
|
cd ${{ github.workspace }}/../server
|
|
|
|
bats apps/news/tests/api
|
|
|
|
# Kill php server
|
|
kill %1
|
|
kill %2
|
|
|
|
- name: Setup problem matchers for PHP
|
|
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
|
|
|
|
- name: Functional tests maintenance
|
|
working-directory: ../server
|
|
run: |
|
|
./occ maintenance:repair
|
|
|
|
- name: Functional tests
|
|
working-directory: ../server
|
|
run: |
|
|
cd apps/news/tests/test_helper/feeds && php -S localhost:8090 &> /tmp/feedserver.log &
|
|
|
|
sleep 2
|
|
|
|
cd ${{ github.workspace }}/../server
|
|
|
|
bats apps/news/tests/command
|
|
|
|
kill %1
|
|
|
|
- name: Prep PHP tests
|
|
working-directory: ../server/apps/news
|
|
run: make php-test-dependencies
|
|
|
|
- name: Feed tests
|
|
working-directory: ../server/apps/news
|
|
run: make feed-test
|
|
|