feat (plugin-beancount): Add Beancount driver #168
Workflow file for this run
This file contains hidden or 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: iOS Tests | |
| on: | |
| pull_request: | |
| paths: | |
| - "TableProMobile/**" | |
| - "Packages/TableProCore/**" | |
| - "Libs/**" | |
| - ".github/workflows/ios-tests.yml" | |
| push: | |
| branches: [main] | |
| paths: | |
| - "TableProMobile/**" | |
| - "Packages/TableProCore/**" | |
| - "Libs/**" | |
| - ".github/workflows/ios-tests.yml" | |
| workflow_dispatch: | |
| # Only one run per PR/branch at a time; new pushes cancel pending older ones. | |
| concurrency: | |
| group: ios-tests-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| XCODE_PROJECT: TableProMobile/TableProMobile.xcodeproj | |
| XCODE_SCHEME: TableProMobile | |
| TEST_DESTINATION: "platform=iOS Simulator,name=iPhone 17 Pro,OS=latest" | |
| jobs: | |
| test: | |
| name: Run iOS Tests | |
| runs-on: macos-26 | |
| timeout-minutes: 25 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Select Xcode | |
| uses: maxim-lobanov/setup-xcode@v1 | |
| with: | |
| xcode-version: '26.4.1' | |
| - name: Install xcbeautify | |
| run: brew list xcbeautify &>/dev/null || brew install xcbeautify | |
| # macos-26 lazy-loads simulator runtimes; -downloadPlatform pulls the runtime | |
| # matching Xcode's SDK and is a no-op when it is already present. | |
| - name: Install iOS simulator runtime | |
| run: sudo xcodebuild -downloadPlatform iOS | |
| # Secrets.xcconfig is gitignored. Tests do not need analytics keys, so the | |
| # checked-in example template is enough for the project to resolve. | |
| - name: Stub Secrets.xcconfig | |
| run: cp TableProMobile/Secrets.xcconfig.example TableProMobile/Secrets.xcconfig | |
| - name: Cache static libraries | |
| uses: actions/cache@v4 | |
| with: | |
| path: Libs | |
| # Include C bridge stub headers in the cache key so the iOS xcframework set | |
| # refreshes whenever a bridge surface (e.g. a new driver's headers) changes. | |
| key: ${{ runner.os }}-libs-${{ hashFiles('Libs/checksums.sha256', 'Plugins/MSSQLDriverPlugin/CFreeTDS/include/sybdb.h', 'TableProMobile/TableProMobile/CBridges/CDuckDB/CDuckDB.h') }} | |
| - name: Download static libraries | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: scripts/download-libs.sh | |
| - name: Resolve Swift package dependencies | |
| run: | | |
| xcodebuild -resolvePackageDependencies \ | |
| -project "$XCODE_PROJECT" \ | |
| -scheme "$XCODE_SCHEME" \ | |
| -skipPackagePluginValidation | |
| - name: Run unit tests | |
| run: | | |
| set -o pipefail | |
| xcodebuild test \ | |
| -project "$XCODE_PROJECT" \ | |
| -scheme "$XCODE_SCHEME" \ | |
| -destination "$TEST_DESTINATION" \ | |
| -only-testing:TableProMobileTests \ | |
| -skipPackagePluginValidation \ | |
| -resultBundlePath TestResults.xcresult \ | |
| CODE_SIGNING_ALLOWED=NO \ | |
| | xcbeautify --renderer github-actions | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ios-test-results | |
| path: TestResults.xcresult | |
| retention-days: 7 | |
| # Diagnostics only on failure so happy-path runs stay quiet. | |
| - name: Show simulator state on failure | |
| if: failure() | |
| run: | | |
| echo "=== iOS runtimes ===" | |
| xcrun simctl list runtimes | grep -E "iOS|tvOS" || true | |
| echo "=== Eligible scheme destinations ===" | |
| xcodebuild -showdestinations \ | |
| -project "$XCODE_PROJECT" \ | |
| -scheme "$XCODE_SCHEME" \ | |
| -skipPackagePluginValidation 2>&1 \ | |
| | grep -E "iOS Simulator.*iPhone" || true |