88 lines
2.7 KiB
YAML
88 lines
2.7 KiB
YAML
name: Swift
|
|
on:
|
|
workflow_dispatch:
|
|
repository_dispatch:
|
|
push:
|
|
branches-ignore:
|
|
- 'main'
|
|
- 'feature'
|
|
- 'v*.*-*'
|
|
paths-ignore:
|
|
- '**.md'
|
|
- 'examples/**'
|
|
- 'test/**'
|
|
- 'tools/**'
|
|
- '!tools/swift/**'
|
|
- '.github/patches/duckdb-wasm/**'
|
|
- '.github/workflows/**'
|
|
- '!.github/workflows/Swift.yml'
|
|
- '.github/config/extensions/*.cmake'
|
|
- '.github/patches/extensions/**/*.patch'
|
|
merge_group:
|
|
pull_request:
|
|
types: [opened, reopened, ready_for_review, converted_to_draft]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- 'examples/**'
|
|
- 'test/**'
|
|
- 'tools/**'
|
|
- '!tools/swift/**'
|
|
- '.github/patches/duckdb-wasm/**'
|
|
- '.github/workflows/**'
|
|
- '!.github/workflows/Swift.yml'
|
|
- '.github/config/extensions/*.cmake'
|
|
- '.github/patches/extensions/**/*.patch'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.head_ref || '' }}-${{ github.base_ref || '' }}-${{ github.ref != 'refs/heads/main' || github.sha }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
check-draft:
|
|
# We run all other jobs on PRs only if they are not draft PR
|
|
if: github.event_name != 'pull_request' || github.event.pull_request.draft == false
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Preliminary checks on CI
|
|
run: echo "Event name is ${{ github.event_name }}"
|
|
|
|
test-apple-platforms:
|
|
name: Test Apple Platforms
|
|
needs: check-draft
|
|
strategy:
|
|
matrix:
|
|
# destinations need to match selected version of Xcode
|
|
# https://github.com/actions/runner-images/blob/main/images/macos/macos-14-Readme.md#installed-simulators
|
|
destination:
|
|
- 'macOS'
|
|
- 'iOS Simulator,name=iPhone 16'
|
|
- 'tvOS Simulator,name=Apple TV 4K (at 1080p) (3nd generation)'
|
|
isRelease:
|
|
- ${{ github.ref == 'refs/heads/main' }}
|
|
exclude:
|
|
- isRelease: false
|
|
destination: 'iOS Simulator,name=iPhone 16'
|
|
- isRelease: false
|
|
destination: 'tvOS Simulator,name=Apple TV 4K (at 1080p) (3nd generation)'
|
|
runs-on: macos-14
|
|
steps:
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
# we need tags for the ubiquity build script to run without errors
|
|
fetch-depth: '0'
|
|
|
|
- name: Prepare Package
|
|
run: python3 tools/swift/create_package.py tools/swift
|
|
|
|
- name: Select Xcode
|
|
run: sudo xcode-select -switch /Applications/Xcode_15.4.app && /usr/bin/xcodebuild -version
|
|
|
|
- name: Run Tests
|
|
run: |
|
|
xcrun xcodebuild test \
|
|
-workspace tools/swift/duckdb-swift/DuckDB.xcworkspace \
|
|
-scheme DuckDB \
|
|
-destination platform='${{ matrix.destination }}'
|