Skip to content

CI/CD: Add iOS build and test workflow to GitHub Actions #56

@sfloess

Description

@sfloess

Overview

iOS/macOS modules lack automated CI/CD, unlike desktop and Android which have comprehensive GitHub Actions workflows.

Current State

Existing CI/CD:

  • ✅ Desktop: .github/workflows/main.yml (Maven build, test, deploy)
  • ✅ Android: .github/workflows/android.yml (Gradle build, test, APK upload)
  • ❌ iOS/macOS: Manual build only

Proposed Workflow

File: .github/workflows/ios.yml

name: iOS CI

on:
  push:
    branches: [ main ]
    paths:
      - 'jnexus-ios/**'
  pull_request:
    branches: [ main ]

jobs:
  build-ios:
    runs-on: macos-latest
    
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        
      - name: Setup Xcode
        uses: maxim-lobanov/setup-xcode@v1
        with:
          xcode-version: '15.0'
          
      - name: Build iOS
        run: |
          cd jnexus-ios
          xcodebuild -scheme JNexus-iOS -destination 'platform=iOS Simulator,name=iPhone 15' build
          
      - name: Build macOS
        run: |
          cd jnexus-ios
          xcodebuild -scheme JNexus-macOS -destination 'platform=macOS' build
          
      - name: Run Tests
        run: |
          cd jnexus-ios
          xcodebuild test -scheme JNexus-iOS -destination 'platform=iOS Simulator,name=iPhone 15'
          
      - name: Archive iOS App
        if: success()
        run: |
          cd jnexus-ios
          xcodebuild -scheme JNexus-iOS -archivePath build/JNexus.xcarchive archive
          
      - name: Upload iOS Archive
        uses: actions/upload-artifact@v4
        with:
          name: jnexus-ios
          path: jnexus-ios/build/JNexus.xcarchive
          retention-days: 30

Benefits

Blockers

Priority

Medium - iOS code works, but lacks CI verification

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions