File provider extension offline #4087
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
name: Build and test main target | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
pull_request: | |
types: [synchronize, opened, reopened, ready_for_review] | |
branches: | |
- master | |
- develop | |
env: | |
PROJECT: Nextcloud.xcodeproj | |
DESTINATION: platform=iOS Simulator,name=iPhone 15,OS=17.2 | |
SCHEME: Nextcloud | |
SERVER_BRANCH: stable28 | |
PHP_VERSION: 8.2 | |
jobs: | |
build: | |
name: Build | |
runs-on: macos-13 | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Restore Carhage Cache | |
uses: actions/cache@v3 | |
id: carthage-cache | |
with: | |
path: Carthage | |
key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }} | |
restore-keys: | | |
${{ runner.os }}-carthage- | |
- name: Carthage | |
if: steps.carthage-cache.outputs.cache-hit != 'true' | |
run: carthage bootstrap --use-xcframeworks --platform iOS | |
- name: Download GoogleService-Info.plist | |
run: wget "https://raw.githubusercontent.com/firebase/quickstart-ios/master/mock-GoogleService-Info.plist" -O GoogleService-Info.plist | |
- name: Build Nextcloud iOS | |
run: | | |
set -o pipefail && \ | |
xcodebuild build-for-testing \ | |
-scheme "${{ env.SCHEME }}" \ | |
-destination "${{ env.DESTINATION }}" \ | |
-derivedDataPath "DerivedData" \ | |
| xcbeautify --quieter | |
- name: Upload test build | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Nextcloud iOS | |
path: DerivedData/Build/Products | |
retention-days: 4 | |
test: | |
name: Test | |
runs-on: macos-13 | |
needs: [build] | |
if: github.event.pull_request.draft == false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up php ${{ env.PHP_VERSION }} | |
uses: shivammathur/setup-php@8872c784b04a1420e81191df5d64fbd59d3d3033 # v2.30.0 | |
with: | |
php-version: ${{ env.PHP_VERSION }} | |
# 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= | |
- name: Checkout server | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
submodules: true | |
repository: nextcloud/server | |
path: server | |
ref: ${{ env.SERVER_BRANCH }} | |
- name: Set up Nextcloud | |
run: | | |
mkdir server/data | |
./server/occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --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 auth.bruteforce.protection.enabled --value false --type bool | |
./server/occ config:system:set ratelimit.protection.enabled --value false --type bool | |
./server/occ config:system:set memcache.local --value="\\OC\\Memcache\\APCu" | |
./server/occ config:system:set memcache.distributed --value="\\OC\\Memcache\\APCu" | |
./server/occ background:cron | |
PHP_CLI_SERVER_WORKERS=5 php -S localhost:8080 -t server/ & | |
- name: Download test build | |
uses: actions/download-artifact@v4 | |
with: | |
name: Nextcloud iOS | |
- name: Check server status | |
run: curl -s --retry 5 --retry-delay 60 --retry-all-errors http://localhost:8080/status.php || true | |
- name: Test Nextcloud iOS | |
run: | | |
set -o pipefail && \ | |
xcodebuild test-without-building \ | |
-xctestrun $(find . -type f -name "*.xctestrun") \ | |
-destination "${{ env.DESTINATION }}" \ | |
-derivedDataPath "DerivedData" \ | |
-test-iterations 3 \ | |
-retry-tests-on-failure \ | |
-resultBundlePath "TestResult.xcresult" \ | |
| xcbeautify --quieter | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: ${{ !cancelled() }} | |
with: | |
name: TestResult.xcresult | |
path: "TestResult.xcresult" | |