123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- 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 16,OS=18.1
- SCHEME: Nextcloud
- SERVER_BRANCH: stable28
- PHP_VERSION: 8.2
- jobs:
- build:
- name: Build
- runs-on: macos-15
- if: github.event.pull_request.draft == false
- steps:
- - uses: actions/checkout@v4
- - 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-15
- 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"
|