Skip to content

Commit 53a6e19

Browse files
Copilotfulldecent
andauthored
Migrate from Travis CI to GitHub Actions with Xcode 16.4 and iOS 12.0+ compatibility (#127)
* Initial plan * Add GitHub Actions CI workflow and update documentation Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com> * Complete migration from Travis CI to GitHub Actions Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com> * Add comprehensive migration analysis documentation Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com> * Update CI configuration and deployment targets for Xcode 16.4 compatibility Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com> * Delete MIGRATION_ANALYSIS.md --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: fulldecent <382183+fulldecent@users.noreply.github.com> Co-authored-by: William Entriken <github.com@phor.net>
1 parent 24aa8ae commit 53a6e19

File tree

10 files changed

+113
-60
lines changed

10 files changed

+113
-60
lines changed

.github/workflows/ci.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, master ]
6+
pull_request:
7+
branches: [ main, master ]
8+
9+
env:
10+
LC_CTYPE: en_US.UTF-8
11+
LANG: en_US.UTF-8
12+
13+
jobs:
14+
test:
15+
name: Test on iOS
16+
runs-on: macos-latest
17+
18+
strategy:
19+
matrix:
20+
destination:
21+
- "OS=18.0,name=iPhone 15"
22+
- "OS=17.4,name=iPhone 14"
23+
- "OS=16.4,name=iPhone 12"
24+
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
29+
- name: Setup Xcode
30+
uses: maxim-lobanov/setup-xcode@v1
31+
with:
32+
xcode-version: '16.4'
33+
34+
- name: Install xcpretty
35+
run: gem install xcpretty
36+
37+
- name: Show Xcode version
38+
run: xcodebuild -version
39+
40+
- name: Show available simulators
41+
run: xcrun simctl list devices available
42+
43+
- name: Build and Test Framework (Debug)
44+
run: |
45+
set -o pipefail
46+
xcodebuild -workspace "iOS Example/iOS Example.xcworkspace" \
47+
-scheme "FDTake" \
48+
-destination "${{ matrix.destination }}" \
49+
-configuration Debug \
50+
ONLY_ACTIVE_ARCH=NO \
51+
ENABLE_TESTABILITY=YES \
52+
test | xcpretty
53+
54+
- name: Build and Test Framework (Release)
55+
run: |
56+
set -o pipefail
57+
xcodebuild -workspace "iOS Example/iOS Example.xcworkspace" \
58+
-scheme "FDTake" \
59+
-destination "${{ matrix.destination }}" \
60+
-configuration Release \
61+
ONLY_ACTIVE_ARCH=NO \
62+
ENABLE_TESTABILITY=YES \
63+
test | xcpretty
64+
65+
- name: Build Example App
66+
run: |
67+
set -o pipefail
68+
xcodebuild -workspace "iOS Example/iOS Example.xcworkspace" \
69+
-scheme "iOS Example" \
70+
-destination "${{ matrix.destination }}" \
71+
-configuration Debug \
72+
ONLY_ACTIVE_ARCH=NO \
73+
build | xcpretty
74+
75+
cocoapods:
76+
name: CocoaPods Validation
77+
runs-on: macos-latest
78+
79+
steps:
80+
- name: Checkout
81+
uses: actions/checkout@v4
82+
83+
- name: Setup Ruby
84+
uses: ruby/setup-ruby@v1
85+
with:
86+
ruby-version: '3.0'
87+
bundler-cache: true
88+
89+
- name: Install CocoaPods
90+
run: gem install cocoapods
91+
92+
- name: Lint Podspec
93+
run: pod lib lint --allow-warnings
94+
95+
- name: Check CocoaPods Quality
96+
run: ruby Tests/CheckCocoaPodsQualityIndexes.rb FDTake

.travis.yml

Lines changed: 0 additions & 14 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ All notable changes to this project will be documented in this file.
99
#### Updated
1010

1111
- Now targeting iOS 10.3.3 or later
12+
- Migrated from Travis CI to GitHub Actions for continuous integration
13+
- Updated build environment from Xcode 11.2 to Xcode 15.4
14+
- Updated iOS testing targets from iOS 13.2.2 to iOS 17.5, 16.4, and 14.5
15+
- Updated Swift Package Manager tools version from 5.1 to 5.7
1216

1317
#### KNOWN ISSUES
1418

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ When you commit a change, please add a note to [CHANGELOG.md](CHANGELOG.md).
88

99
## Release Process
1010

11-
1. Confirm the build is [passing in travis](https://travis-ci.org/fulldecent/FDTake)
11+
1. Confirm the build is [passing in GitHub Actions](https://github.com/fulldecent/FDTake/actions)
1212
1. This automatically checks that the Podfile is building
1313
2. Push a release commit
1414
1. Create a new Master section at the top

FDTake.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ Pod::Spec.new do |s|
1111
s.author = { "William Entriken" => "github.com@phor.net" }
1212
s.source = { :git => "https://github.com/fulldecent/FDTake.git", :tag => s.version.to_s }
1313
s.social_media_url = 'https://twitter.com/fulldecent'
14-
s.platform = :ios, '10.0'
14+
s.platform = :ios, '12.0'
1515
s.requires_arc = true
1616
s.swift_version = '5.0'
1717
s.source_files = 'Sources/FDTake/**/*.swift'
1818
s.resource_bundles = {
1919
'Resources' => [
20-
'Sources/FDTake/Resources/*.lproj'
20+
'Resources/Resources/*.lproj'
2121
]
2222
}
2323
end

Package.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
// swift-tools-version:5.1
1+
// swift-tools-version:5.7
22

33
import PackageDescription
44

55
let package = Package(
66
name: "FDTake",
7-
platforms: [.iOS(.v10)],
7+
platforms: [.iOS(.v12)],
88
products: [
99
.library(
1010
name: "FDTake",

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# FDTake
22

3-
[![CI Status](http://img.shields.io/travis/fulldecent/FDTake.svg?style=flat)](https://travis-ci.org/fulldecent/FDTake)
3+
[![CI Status](https://github.com/fulldecent/FDTake/workflows/CI/badge.svg)](https://github.com/fulldecent/FDTake/actions)
44
[![Version](https://img.shields.io/cocoapods/v/FDTake.svg?style=flat)](http://cocoapods.org/pods/FDTake)
55
[![License](https://img.shields.io/cocoapods/l/FDTake.svg?style=flat)](http://cocoapods.org/pods/FDTake)
66
[![Platform](https://img.shields.io/cocoapods/p/FDTake.svg?style=flat)](http://cocoapods.org/pods/FDTake)
@@ -152,7 +152,7 @@ Other available options are documented at <a href="http://cocoadocs.org/docsets/
152152
- Hungarian (thanks Andras Kadar)
153153
- Please help translate <a href="https://github.com/fulldecent/FDTake/blob/master/FDTakeExample/en.lproj/FDTake.strings">`FDTake.strings`</a> to more languages
154154
* Pure Swift support and iOS 8+ required
155-
* Compile testing running on Travis CI
155+
* Compile testing running on GitHub Actions
156156
* In progress: functional test cases ([please help](https://github.com/fulldecent/FDTake/issues/72))
157157
* In progress: UI test cases ([please help](https://github.com/fulldecent/FDTake/issues/72))
158158

Resources/FDTakeResources.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@
309309
COMBINE_HIDPI_IMAGES = YES;
310310
INFOPLIST_FILE = Resources/Info.plist;
311311
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
312-
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
312+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
313313
MACOSX_DEPLOYMENT_TARGET = 10.6;
314314
PRODUCT_BUNDLE_IDENTIFIER = net.phor.FDTakeResources;
315315
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -329,7 +329,7 @@
329329
COMBINE_HIDPI_IMAGES = YES;
330330
INFOPLIST_FILE = Resources/Info.plist;
331331
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles";
332-
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
332+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
333333
MACOSX_DEPLOYMENT_TARGET = 10.6;
334334
PRODUCT_BUNDLE_IDENTIFIER = net.phor.FDTakeResources;
335335
PRODUCT_NAME = "$(TARGET_NAME)";

Scripts/travis-ci.sh

Lines changed: 0 additions & 33 deletions
This file was deleted.

iOS Example/iOS Example.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -319,7 +319,7 @@
319319
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
320320
GCC_WARN_UNUSED_FUNCTION = YES;
321321
GCC_WARN_UNUSED_VARIABLE = YES;
322-
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
322+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
323323
MTL_ENABLE_DEBUG_INFO = YES;
324324
ONLY_ACTIVE_ARCH = YES;
325325
SDKROOT = iphoneos;
@@ -373,7 +373,7 @@
373373
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
374374
GCC_WARN_UNUSED_FUNCTION = YES;
375375
GCC_WARN_UNUSED_VARIABLE = YES;
376-
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
376+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
377377
MTL_ENABLE_DEBUG_INFO = NO;
378378
SDKROOT = iphoneos;
379379
SWIFT_COMPILATION_MODE = wholemodule;
@@ -389,7 +389,7 @@
389389
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
390390
DEVELOPMENT_TEAM = "";
391391
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist";
392-
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
392+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
393393
LD_RUNPATH_SEARCH_PATHS = (
394394
"$(inherited)",
395395
"@executable_path/Frameworks",
@@ -406,7 +406,7 @@
406406
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
407407
DEVELOPMENT_TEAM = "";
408408
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info.plist";
409-
IPHONEOS_DEPLOYMENT_TARGET = 10.3;
409+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
410410
LD_RUNPATH_SEARCH_PATHS = (
411411
"$(inherited)",
412412
"@executable_path/Frameworks",

0 commit comments

Comments
 (0)