Skip to content

Test install nextcloud directly #196

Test install nextcloud directly

Test install nextcloud directly #196

Workflow file for this run

name: Build main target
on:
pull_request:
paths:
- '.github/workflows/**'
- NextcloudTalk.xcodeproj/**
- NextcloudTalk/**
- NextcloudTalkUITests/**
- NotificationServiceExtension/**
- ShareExtension/**
push:
branches:
- main
- master
- stable*
permissions:
contents: read
jobs:
build-and-test:
name: Build and Test
runs-on: macos-13
if: github.event.pull_request.draft == false
strategy:
matrix:
# Test with stable23 as well to find regressions in older versions
test-branches: ['stable23', 'stable27', 'master']
env:
WORKSPACE: NextcloudTalk.xcworkspace
DESTINATION: platform=iOS Simulator,name=iPhone 14,OS=16.4
SCHEME: NextcloudTalk
TEST_BRANCH: ${{ matrix.test-branches }}
CONTAINER_NAME: nextcloud_test
SERVER_PORT: 8080
steps:
- name: Checkout app
uses: actions/checkout@v3
with:
submodules: true
- uses: actions/cache@v3
with:
path: Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- uses: actions/cache@v3
with:
path: SourcePackages
key: ${{ runner.os }}-spm-${{ hashFiles('NextcloudTalk.xcworkspace/xcshareddata/swiftpm/Package.resolved') }}
restore-keys: |
${{ runner.os }}-spm-
- name: Set up php 8.2
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
if: matrix.test-branches != 'stable23'
with:
php-version: 8.2
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: apcu, bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: none
ini-file: development
# Temporary workaround for missing pcntl_* in PHP 8.3: ini-values: apc.enable_cli=on
ini-values: apc.enable_cli=on, disable_functions=
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Set up php 8.0
uses: shivammathur/setup-php@c5fc0d8281aba02c7fda07d3a70cc5371548067d # v2
if: matrix.test-branches == 'stable23'
with:
php-version: 8.0
# https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
extensions: apcu, bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
coverage: none
ini-file: development
# Temporary workaround for missing pcntl_* in PHP 8.3: ini-values: apc.enable_cli=on
ini-values: apc.enable_cli=on, disable_functions=
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout server
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
submodules: true
repository: nextcloud/server
path: server
ref: ${{ matrix.test-branches }}
- name: Checkout Talk
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab # v3.5.2
with:
repository: nextcloud/spreed
path: server/apps/spreed
ref: ${{ matrix.test-branches }}
- name: Set up production dependencies
working-directory: server/apps/spreed
run: composer i --no-dev
- name: Set up dependencies talk-ios
run: |
pod install
- name: Set up Nextcloud
env:
DB_PORT: 4444
run: |
mkdir server/data
./server/occ maintenance:install --verbose --database=sqlite --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
./server/occ config:system:set hashing_default_password --value=true --type=boolean
./server/occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu"
./server/occ config:system:set memcache.distributed --value="\\OC\\Memcache\\APCu"
./server/occ app:enable --force spreed
PHP_CLI_SERVER_WORKERS=3 php -S localhost:8080 -t server/ &
- name: Build & Test NextcloudTalk iOS
run: |
set -o pipefail && xcodebuild test -workspace $WORKSPACE \
-scheme "$SCHEME" \
-destination "$DESTINATION" \
-test-iterations 3 \
-retry-tests-on-failure \
-resultBundlePath "testResult.xcresult" \
-clonedSourcePackagesDirPath SourcePackages \
| xcpretty
- name: Upload test results
uses: actions/upload-artifact@v3
if: ${{ !cancelled() }}
with:
name: testResults-${{ matrix.test-branches }}.xcresult
path: "testResult.xcresult"