Skip to content

Commit

Permalink
Add Swift 5.6 Support (#35)
Browse files Browse the repository at this point in the history
* feat(platform): Swift 5.3 through 5.6 support

* chore(ci): Update

* chore(ci): Update
  • Loading branch information
chrisdhaan authored Jun 26, 2022
1 parent 7e76895 commit c292db9
Show file tree
Hide file tree
Showing 66 changed files with 552 additions and 231 deletions.
12 changes: 6 additions & 6 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
### Issue Link :link:
> What issue does this fix? If an issue doesn't exist, remove this section.
<!-- What issue does this fix? If an issue doesn't exist, remove this section. -->

### Goals :soccer:
> List the high-level objectives of this pull request.
> Include any relevant context.
<!-- List the high-level objectives of this pull request. -->
<!-- Include any relevant context. -->

### Implementation Details :construction:
> Explain the reasoning behind any architectural changes.
> Highlight any new functionality.
<!-- Explain the reasoning behind any architectural changes. -->
<!-- Highlight any new functionality. -->

### Testing Details :mag:
> Describe what tests you've added for your changes.
<!-- Describe what tests you've added for your changes. -->
217 changes: 217 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,217 @@
name: "CDMarkdownKit CI"

on:
push:
branches:
- master
paths:
- "Source/**"
- ".github/workflows/**"
- "Package.swift"
pull_request:
paths:
- "Source/**"
- ".github/workflows/**"
- "Package.swift"

concurrency:
group: ci
cancel-in-progress: true
jobs:
Latest:
name: Test Latest (iOS, macOS, tvOS, watchOS)
runs-on: macOS-12
env:
DEVELOPER_DIR: "/Applications/Xcode_13.4.1.app/Contents/Developer"
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "iOS"
destination: "OS=15.5,name=iPhone 13 Pro"
- name: "macOS"
destination: "platform=macOS"
- name: "tvOS"
destination: "OS=15.4,name=Apple TV"
- name: "watchOS"
destination: "OS=8.5,name=Apple Watch Series 7 - 45mm"
steps:
- uses: actions/checkout@v3
- name: ${{ matrix.name }} - Debug
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit ${{ matrix.name }}" -destination "${{ matrix.destination }}" -configuration Debug clean build | xcpretty
- name: ${{ matrix.name }} - Release
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit ${{ matrix.name }}" -destination "${{ matrix.destination }}" -configuration Release clean build | xcpretty
Catalyst:
name: Test Catalyst
runs-on: macOS-12
env:
DEVELOPER_DIR: "/Applications/Xcode_13.4.app/Contents/Developer"
timeout-minutes: 10
steps:
- uses: actions/checkout@v3
- name: Catalyst - Debug
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit iOS" -destination "platform=macOS" -configuration Debug clean build | xcpretty
- name: Catalyst - Release
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit iOS" -destination "platform=macOS" -configuration Release clean build | xcpretty
iOS:
name: Test iOS
runs-on: macOS-11
env:
DEVELOPER_DIR: "/Applications/Xcode_12.5.1.app/Contents/Developer"
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
include:
- name: "iOS 14.5"
destination: "OS=14.5,name=iPhone 12 Pro"
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: Pods
key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-pods-
- name: ${{ matrix.name }} - Debug
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit iOS" -destination "${{ matrix.destination }}" -configuration Debug clean build | xcpretty
- name: ${{ matrix.name }} - Release
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit iOS" -destination "${{ matrix.destination }}" -configuration Release clean build | xcpretty
- name: Pod Lib Lint
run: |
gem install cocoapods --no-document --quiet
pod lib lint --allow-warnings --use-libraries
macOS:
name: Test macOS
runs-on: ${{ matrix.runsOn }}
env:
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}/Contents/Developer"
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- runsOn: macOS-12
xcode: "Xcode_13.4.1.app"
name: "macOS 12, Xcode 13.4.1, Swift 5.6.1"
- runsOn: macOS-12
xcode: "Xcode_13.3.1.app"
name: "macOS 12, Xcode 13.3.1, Swift 5.6"
- runsOn: macOS-11
xcode: "Xcode_13.2.1.app"
name: "macOS 11, Xcode 13.2.1, Swift 5.5.2"
- runsOn: macOS-11
xcode: "Xcode_13.1.app"
name: "macOS 11, Xcode 13.1, Swift 5.5.1"
- runsOn: macOS-11
xcode: "Xcode_13.0.app"
name: "macOS 11, Xcode 13.0, Swift 5.5.0"
- runsOn: macOS-11
xcode: "Xcode_12.5.1.app"
name: "macOS 11, Xcode 12.5.1, Swift 5.4"
- runsOn: macOS-10.15
xcode: "Xcode_12.4.app"
name: "macOS 10.15, Xcode 12.4, Swift 5.3"
steps:
- uses: actions/checkout@v3
- name: ${{ matrix.name }} - Debug
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit macOS" -destination "platform=macOS" -configuration Debug clean build | xcpretty
- name: ${{ matrix.name }} - Release
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit macOS" -destination "platform=macOS" -configuration Release clean build | xcpretty
tvOS:
name: Test tvOS
runs-on: macOS-11
env:
DEVELOPER_DIR: "/Applications/Xcode_12.5.1.app/Contents/Developer"
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "tvOS 14.5"
destination: "OS=14.5,name=Apple TV"
steps:
- uses: actions/checkout@v3
- name: ${{ matrix.name }} - Debug
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit tvOS" -destination "${{ matrix.destination }}" -configuration Debug clean build | xcpretty
- name: ${{ matrix.name }} - Release
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit tvOS" -destination "${{ matrix.destination }}" -configuration Release clean build | xcpretty
watchOS:
name: Test watchOS
runs-on: macOS-11
env:
DEVELOPER_DIR: "/Applications/Xcode_12.5.1.app/Contents/Developer"
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- name: "watchOS 7.4"
destination: "OS=7.4,name=Apple Watch Series 6 - 44mm"

steps:
- uses: actions/checkout@v3
- name: ${{ matrix.name }} - Debug
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit watchOS" -destination "${{ matrix.destination }}" -configuration Debug clean build | xcpretty
- name: ${{ matrix.name }} - Release
run: |
set -o pipefail
env NSUnbufferedIO=YES xcodebuild -project "CDMarkdownKit.xcodeproj" -scheme "CDMarkdownKit watchOS" -destination "${{ matrix.destination }}" -configuration Release clean build | xcpretty
SPM:
name: Test with SPM
runs-on: ${{ matrix.runsOn }}
env:
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}/Contents/Developer"
timeout-minutes: 10
strategy:
fail-fast: false
matrix:
include:
- xcode: "Xcode_13.4.app"
runsOn: macOS-12
name: "macOS 12, SPM 5.6.1 Build"
- xcode: "Xcode_13.3.1.app"
runsOn: macOS-12
name: "macOS 12, SPM 5.6 Build"
- xcode: "Xcode_13.2.1.app"
runsOn: macOS-11
name: "macOS 11, SPM 5.5.2 Build"
- xcode: "Xcode_13.1.app"
runsOn: macOS-11
name: "macOS 11, SPM 5.5.1 Build"
- xcode: "Xcode_13.0.app"
runsOn: macOS-11
name: "macOS 11, SPM 5.5 Test"
- xcode: "Xcode_12.5.1.app"
runsOn: macOS-11
name: "macOS 11, SPM 5.4 Build"
- xcode: "Xcode_12.4.app"
runsOn: macOS-10.15
name: "macOS 10.15, SPM 5.3 Build"
steps:
- uses: actions/checkout@v3
- name: ${{ matrix.name }}
run: swift build -c debug
1 change: 1 addition & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ included: # paths to include during linting. `--path` is ignored if present.
- Source
- Example/Source

# configurable rules can be customized from this configuration file.
# number of lines allowed in a file
file_length: 405
# number of lines allowed in a function
Expand Down
59 changes: 0 additions & 59 deletions .travis.yml

This file was deleted.

4 changes: 2 additions & 2 deletions CDMarkdownKit.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = 'CDMarkdownKit'
s.version = '2.1.1'
s.version = '2.2.0'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.summary = 'An extensive Swift framework providing simple and customizable markdown parsing.'
s.description = <<-DESC
Expand All @@ -15,7 +15,7 @@ Pod::Spec.new do |s|
s.tvos.deployment_target = '10.0'
s.watchos.deployment_target = '3.0'

s.swift_versions = ['5.1', '5.2']
s.swift_versions = ['5.3', '5.4', '5.5']

s.source_files = 'Source/*.swift'
end
Loading

0 comments on commit c292db9

Please sign in to comment.