diff --git a/.github/workflows/xcode-build.yml b/.github/workflows/xcode-build.yml new file mode 100644 index 0000000..268de2a --- /dev/null +++ b/.github/workflows/xcode-build.yml @@ -0,0 +1,27 @@ +name: Xcode build + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + +jobs: + macos: + name: macOS + runs-on: macos-26 + + steps: + - name: Check out repository + uses: actions/checkout@v7 + + - name: Build for macOS + run: | + xcodebuild build \ + -project potassiumProvider.xcodeproj \ + -scheme potassiumProvider \ + -destination 'platform=macOS' \ + CODE_SIGNING_ALLOWED=NO diff --git a/doc/TESTING_AND_DEVELOPMENT.md b/doc/TESTING_AND_DEVELOPMENT.md index 5e21972..07cd651 100644 --- a/doc/TESTING_AND_DEVELOPMENT.md +++ b/doc/TESTING_AND_DEVELOPMENT.md @@ -110,6 +110,23 @@ xcodebuild test \ Use `xcodebuild -showdestinations` to copy the exact Mac destination if local Xcode requires a more specific macOS variant. +## Continuous Integration + +GitHub Actions runs an unsigned macOS build for every pull request and every +push to `main`. The build uses the `macos-26` runner and its default Xcode 26.5 +installation: + +```sh +xcodebuild build \ + -project potassiumProvider.xcodeproj \ + -scheme potassiumProvider \ + -destination 'platform=macOS' \ + CODE_SIGNING_ALLOWED=NO +``` + +This initial workflow checks compilation only. Unit tests, UI tests, caching, +and iOS Simulator and visionOS jobs remain outside its scope. + ## Test Style - New unit tests should use Swift Testing (`import Testing`). diff --git a/potassiumProvider.xcodeproj/project.pbxproj b/potassiumProvider.xcodeproj/project.pbxproj index 115acb0..53fec09 100644 --- a/potassiumProvider.xcodeproj/project.pbxproj +++ b/potassiumProvider.xcodeproj/project.pbxproj @@ -1077,7 +1077,7 @@ }; C09842BD2FF8491700CB8B7E /* XCRemoteSwiftPackageReference "potassiumChannel" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "git@github.com:OpenCow42/potassiumChannel.git"; + repositoryURL = "https://github.com/OpenCow42/potassiumChannel.git"; requirement = { kind = upToNextMajorVersion; minimumVersion = 0.2.0; @@ -1085,7 +1085,7 @@ }; C0DCD8ED2FFA44AB00520215 /* XCRemoteSwiftPackageReference "swift-concurrency" */ = { isa = XCRemoteSwiftPackageReference; - repositoryURL = "git@github.com:OpenCow42/swift-concurrency.git"; + repositoryURL = "https://github.com/OpenCow42/swift-concurrency.git"; requirement = { kind = upToNextMajorVersion; minimumVersion = 1.0.1; diff --git a/potassiumProvider.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/potassiumProvider.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 02d409f..34cbefa 100644 --- a/potassiumProvider.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/potassiumProvider.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -4,7 +4,7 @@ { "identity" : "potassiumchannel", "kind" : "remoteSourceControl", - "location" : "git@github.com:OpenCow42/potassiumChannel.git", + "location" : "https://github.com/OpenCow42/potassiumChannel.git", "state" : { "revision" : "8a6d236d69c381c17f334b66dd4075ef2e0b7d89", "version" : "0.2.0" @@ -22,7 +22,7 @@ { "identity" : "swift-concurrency", "kind" : "remoteSourceControl", - "location" : "git@github.com:OpenCow42/swift-concurrency.git", + "location" : "https://github.com/OpenCow42/swift-concurrency.git", "state" : { "revision" : "696ea95ad5974bd04f63d353f317cf5ecd9235e8", "version" : "1.0.1"