Skip to content

Add GitHub Action CI to run tests #1

Add GitHub Action CI to run tests

Add GitHub Action CI to run tests #1

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- main
concurrency:
group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
macos-tests:
name: macOS Tests
runs-on: macos-26
steps:
- name: Checkout
uses: actions/checkout@v5
with:
submodules: recursive
- name: Generate Secrets Sources
run: PROJECT_DIR="$GITHUB_WORKSPACE" ./buildscripts/updateSecrets.sh
- name: Select Xcode 26.3
run: sudo xcode-select -s /Applications/Xcode_26.3.app/Contents/Developer
- name: Run macOS Test Plan
shell: bash
run: |
set -euo pipefail
result_bundle="${RUNNER_TEMP}/NetNewsWire-macOS.xcresult"
rm -rf "$result_bundle"
xcodebuild \
-project NetNewsWire.xcodeproj \
-scheme NetNewsWire \
-xcconfig .github/macos-ci-no-signing.xcconfig \
-destination "platform=macOS,arch=arm64" \
OTHER_SWIFT_FLAGS='$(inherited) -Xfrontend -warn-long-function-bodies=650 -Xfrontend -warn-long-expression-type-checking=650' \
-resultBundlePath "$result_bundle" \
test | xcbeautify
- name: Upload macOS Result Bundle
if: failure()
uses: actions/upload-artifact@v4
with:
name: netnewswire-macos-xcresult
path: ${{ runner.temp }}/NetNewsWire-macOS.xcresult
if-no-files-found: warn
retention-days: 7
ios-simulator-tests:
name: iOS Simulator Tests
runs-on: macos-26
steps:
- name: Checkout
uses: actions/checkout@v5
with:
submodules: recursive
- name: Generate Secrets Sources
run: PROJECT_DIR="$GITHUB_WORKSPACE" ./buildscripts/updateSecrets.sh
- name: Select Xcode 26.3
run: sudo xcode-select -s /Applications/Xcode_26.3.app/Contents/Developer
- name: Run iOS Test Plan
shell: bash
run: |
set -euo pipefail
result_bundle="${RUNNER_TEMP}/NetNewsWire-iOS.xcresult"
rm -rf "$result_bundle"
xcodebuild \
-project NetNewsWire.xcodeproj \
-scheme NetNewsWire-iOS \
-destination "platform=iOS Simulator,name=iPhone 17" \
OTHER_SWIFT_FLAGS='$(inherited) -DDEBUG -DSKIP_APP_GROUP_ACCESS -Xfrontend -warn-long-function-bodies=650 -Xfrontend -warn-long-expression-type-checking=650' \
-resultBundlePath "$result_bundle" \
test | xcbeautify
- name: Upload iOS Result Bundle
if: failure()
uses: actions/upload-artifact@v4
with:
name: netnewswire-ios-xcresult
path: ${{ runner.temp }}/NetNewsWire-iOS.xcresult
if-no-files-found: warn
retention-days: 7