Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
with:
xcode-version: '26.2'
xcode-version: '26.3'

# Cache Homebrew packages
# Note: Static version key (brew-v1) - increment manually when brew dependencies change
Expand Down Expand Up @@ -117,7 +117,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
with:
xcode-version: '26.2'
xcode-version: '26.3'

# Cache Homebrew packages
# Note: Static version key (brew-v1) - increment manually when brew dependencies change
Expand Down Expand Up @@ -183,7 +183,7 @@ jobs:
xcodebuild build-for-testing \
-project Pulse.xcodeproj \
-scheme PulseDev \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-derivedDataPath ./DerivedData \
-skipMacroValidation \
ENABLE_ONLY_ACTIVE_RESOURCES=NO
Expand All @@ -194,7 +194,7 @@ jobs:
xcodebuild build-for-testing \
-project Pulse.xcodeproj \
-scheme PulseSnapshotTests \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-derivedDataPath ./DerivedData \
-skipMacroValidation \
ENABLE_ONLY_ACTIVE_RESOURCES=NO
Expand Down Expand Up @@ -237,7 +237,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
with:
xcode-version: '26.2'
xcode-version: '26.3'

# Cache Homebrew packages
# Note: Static version key (brew-v1) - increment manually when brew dependencies change
Expand Down Expand Up @@ -293,7 +293,7 @@ jobs:
-project Pulse.xcodeproj \
-scheme ${{ matrix.scheme }} \
-only-testing:${{ matrix.test-target }} \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-derivedDataPath ./DerivedData \
-resultBundlePath test-results/${{ matrix.artifact-name }}.xcresult \
-disableAutomaticPackageResolution \
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/scheduled-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
with:
xcode-version: '26.2'
xcode-version: '26.3'

# Cache Homebrew packages
# Note: Static version key (brew-v1) - increment manually when brew dependencies change
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
xcodebuild build-for-testing \
-project Pulse.xcodeproj \
-scheme PulseDev \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-derivedDataPath ./DerivedData \
-skipMacroValidation

Expand All @@ -98,7 +98,7 @@ jobs:
xcodebuild build-for-testing \
-project Pulse.xcodeproj \
-scheme PulseSnapshotTests \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-derivedDataPath ./DerivedData \
-skipMacroValidation

Expand Down Expand Up @@ -140,7 +140,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
with:
xcode-version: '26.2'
xcode-version: '26.3'

# Cache Homebrew packages
# Note: Static version key (brew-v1) - increment manually when brew dependencies change
Expand Down Expand Up @@ -196,7 +196,7 @@ jobs:
-project Pulse.xcodeproj \
-scheme ${{ matrix.scheme }} \
-only-testing:${{ matrix.test-target }} \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-derivedDataPath ./DerivedData \
-resultBundlePath test-results/${{ matrix.artifact-name }}.xcresult \
-disableAutomaticPackageResolution \
Expand Down Expand Up @@ -451,7 +451,7 @@ jobs:
- name: Setup Xcode
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd # v1
with:
xcode-version: '26.2'
xcode-version: '26.3'

- name: Cache Homebrew packages
uses: actions/cache@v4
Expand Down Expand Up @@ -653,7 +653,7 @@ jobs:
xcodebuild build \
-project Pulse.xcodeproj \
-scheme PulseDev \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-quiet \
CODE_SIGNING_ALLOWED=NO \
-skipMacroValidation || {
Expand Down
30 changes: 15 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ help:
@echo " build-release - Build for release"
@echo " lint - Run SwiftLint and SwiftFormat checks"
@echo " format - Auto-fix formatting with SwiftFormat"
@echo " test - Run all tests on iOS 26.2 iPhone Air"
@echo " test - Run all tests on iOS 26.3.1 iPhone Air"
@echo " test-unit - Run only unit tests"
@echo " test-ui - Run only UI tests"
@echo " test-snapshot - Run only snapshot tests"
Expand Down Expand Up @@ -101,7 +101,7 @@ build:
@xcodebuild build \
-project Pulse.xcodeproj \
-scheme PulseDev \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-configuration Debug \
CODE_SIGNING_ALLOWED=NO -skipMacroValidation

Expand All @@ -110,15 +110,15 @@ build-release:
@xcodebuild build \
-project Pulse.xcodeproj \
-scheme PulseProd \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' \
-destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' \
-configuration Release \
CODE_SIGNING_ALLOWED=NO -skipMacroValidation

# Run all tests
test:
@echo "Running all tests on iOS 26.2 iPhone Air..."
@echo "Running all tests on iOS 26.3.1 iPhone Air..."
@make clean-packages
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
echo "All tests completed successfully!"; \
grep -E "(Test run.*passed|Test run.*failed)" /tmp/test_output.log | tail -2; \
else \
Expand All @@ -132,9 +132,9 @@ test:

# Run tests with coverage and print app target percent
coverage:
@echo "Running tests with coverage on iOS 26.2 iPhone Air..."
@echo "Running tests with coverage on iOS 26.3.1 iPhone Air..."
@rm -rf build/TestResults.xcresult
@xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' -enableCodeCoverage YES -resultBundlePath build/TestResults.xcresult CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/coverage_output.log | grep -E '(Testing|Test Suite|Test Case|passed|failed)' || true
@xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' -enableCodeCoverage YES -resultBundlePath build/TestResults.xcresult CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/coverage_output.log | grep -E '(Testing|Test Suite|Test Case|passed|failed)' || true
@echo ""
@if grep -E "Executed .* tests, with [1-9][0-9]* failures" /tmp/coverage_output.log > /dev/null; then \
echo "Tests failed! Coverage report may be incomplete."; \
Expand Down Expand Up @@ -170,9 +170,9 @@ coverage-badge:

# Run only unit tests
test-unit:
@echo "Running unit tests on iOS 26.2 iPhone Air..."
@echo "Running unit tests on iOS 26.3.1 iPhone Air..."
@make clean-packages
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
echo "Unit tests completed successfully!"; \
grep -E "(Test run.*passed|Test run.*failed)" /tmp/test_output.log | tail -5; \
else \
Expand All @@ -186,9 +186,9 @@ test-unit:

# Run only UI tests
test-ui:
@echo "Running UI tests on iOS 26.2 iPhone Air..."
@echo "Running UI tests on iOS 26.3.1 iPhone Air..."
@make clean-packages
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseUITests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseUITests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
echo "UI tests completed successfully!"; \
grep -E "(Test run.*passed|Test run.*failed)" /tmp/test_output.log | tail -1; \
else \
Expand All @@ -202,9 +202,9 @@ test-ui:

# Run only snapshot tests
test-snapshot:
@echo "Running snapshot tests on iOS 26.2 iPhone Air..."
@echo "Running snapshot tests on iOS 26.3.1 iPhone Air..."
@make clean-packages
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseSnapshotTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
@if xcodebuild clean test -project Pulse.xcodeproj -scheme PulseSnapshotTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_output.log; then \
echo "Snapshot tests completed successfully!"; \
grep -E "(Test run.*passed|Test run.*failed)" /tmp/test_output.log | tail -1; \
else \
Expand All @@ -221,15 +221,15 @@ test-debug:
@echo "Running unit tests with full verbose output for debugging..."
@echo "This will show all test output including passing tests"
@make clean-packages
@xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_debug.log
@xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' CODE_SIGNING_ALLOWED=NO -skipMacroValidation 2>&1 | tee /tmp/test_debug.log
@echo ""
@echo "Full debug output saved to /tmp/test_debug.log"

# Test deeplink functionality specifically
deeplink-test:
@echo "Testing deeplink functionality..."
@make clean-packages
@xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseTests/DeeplinkManagerTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.2' CODE_SIGNING_ALLOWED=NO -skipMacroValidation
@xcodebuild clean test -project Pulse.xcodeproj -scheme PulseDev -only-testing:PulseTests/DeeplinkManagerTests -destination 'platform=iOS Simulator,name=iPhone Air,OS=26.3.1' CODE_SIGNING_ALLOWED=NO -skipMacroValidation
@echo "Deeplink tests completed!"

# Clean generated files
Expand Down
18 changes: 9 additions & 9 deletions project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: Pulse
options:
bundleIdPrefix: com.bruno
deploymentTarget:
iOS: "26.2"
xcodeVersion: "26.2"
iOS: "26.3"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: The deployment target is now 26.3, but a couple of documentation files still reference 26.2:

  • README.md (lines 302-303): Xcode 26.2+ / iOS 26.2+
  • Pulse/Documentation.docc/GettingStarted.md (lines 12-13): Xcode 26.2 or later / iOS 26.2 SDK

Since the minimum deployment target is now 26.3, these should be updated to match. Not blocking, but worth a follow-up.

Fix this →

xcodeVersion: "26.3"
groupSortPosition: top
generateEmptyDirectories: true
fileTypes:
Expand Down Expand Up @@ -40,7 +40,7 @@ settings:
CURRENT_PROJECT_VERSION: "1"
DEVELOPMENT_TEAM: RDTR6557FX
CODE_SIGN_STYLE: Automatic
IPHONEOS_DEPLOYMENT_TARGET: 26.2
IPHONEOS_DEPLOYMENT_TARGET: 26.3
SWIFT_VERSION: 5.0
TARGETED_DEVICE_FAMILY: 1,2
SUPPORTED_PLATFORMS: iphoneos iphonesimulator
Expand Down Expand Up @@ -76,7 +76,7 @@ targets:
Pulse:
type: application
platform: iOS
deploymentTarget: "26.2"
deploymentTarget: "26.3"
sources:
- path: Pulse
excludes:
Expand Down Expand Up @@ -175,7 +175,7 @@ targets:
PulseTests:
type: bundle.unit-test
platform: iOS
deploymentTarget: "26.2"
deploymentTarget: "26.3"
sources:
- path: PulseTests
settings:
Expand All @@ -202,7 +202,7 @@ targets:
PulseUITests:
type: bundle.ui-testing
platform: iOS
deploymentTarget: "26.2"
deploymentTarget: "26.3"
sources:
- path: PulseUITests
settings:
Expand All @@ -227,7 +227,7 @@ targets:
PulseSnapshotTests:
type: bundle.unit-test
platform: iOS
deploymentTarget: "26.2"
deploymentTarget: "26.3"
sources:
- path: PulseSnapshotTests
settings:
Expand All @@ -254,7 +254,7 @@ targets:
PulseWidgetExtensionTests:
type: bundle.unit-test
platform: iOS
deploymentTarget: "26.2"
deploymentTarget: "26.3"
sources:
- path: PulseWidgetExtensionTests
- path: PulseWidgetExtension
Expand Down Expand Up @@ -285,7 +285,7 @@ targets:
PulseWidgetExtension:
type: app-extension
platform: iOS
deploymentTarget: "26.2"
deploymentTarget: "26.3"
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.bruno.Pulse-News.widget
Expand Down
Loading