Skip to content

Add production readiness report #1

Add production readiness report

Add production readiness report #1

name: Build & Test
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]
jobs:
build-and-test:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Select Xcode version
run: sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
- name: Print Xcode info
run: xcodebuild -version
- name: Install dependencies
run: |
if [ -f "Podfile" ]; then
pod install
fi
- name: Build for testing
run: |
xcodebuild \
-scheme ExpenseFlow \
-configuration Debug \
-sdk iphonesimulator \
-derivedDataPath build \
build-for-testing
- name: Run tests
run: |
xcodebuild \
-scheme ExpenseFlow \
-configuration Debug \
-sdk iphonesimulator \
-derivedDataPath build \
-resultBundlePath test-results \
test-without-building
continue-on-error: true
- name: Build for release
run: |
xcodebuild \
-scheme ExpenseFlow \
-configuration Release \
-sdk iphonesimulator \
-derivedDataPath build \
build
- name: Check for build warnings
run: |
xcodebuild \
-scheme ExpenseFlow \
-configuration Release \
-sdk iphonesimulator \
-derivedDataPath build \
build 2>&1 | grep -i "warning:" | head -20 || true
lint:
runs-on: macos-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: SwiftLint
run: |
if which swiftlint >/dev/null; then
swiftlint lint --strict Sources/
else
echo "SwiftLint not installed, skipping..."
fi
continue-on-error: true