-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'upstream/master' into feature/support-for-context-menu
# Conflicts: # CHANGELOG.md
- Loading branch information
Showing
374 changed files
with
8,961 additions
and
5,250 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,233 @@ | ||
name: "IGListKit CI" | ||
|
||
on: | ||
push: | ||
branches: | ||
- master | ||
pull_request: | ||
branches: | ||
- '*' | ||
|
||
jobs: | ||
macOS: | ||
name: Unit Test macOS | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app | ||
WORKSPACE_NAME: IGListKit.xcworkspace | ||
SCHEME_NAME: IGListKit-macOS | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Cache RubyGems | ||
uses: actions/cache@v2 | ||
with: | ||
path: vendor/bundle | ||
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-gems- | ||
- name: Install ruby gems. | ||
run: bundle install | ||
|
||
- name: Run unit tests for macOS | ||
run: | | ||
set -o pipefail | ||
xcodebuild build build-for-testing -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "platform=macOS" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ONLY_ACTIVE_ARCH=YES | bundle exec xcpretty -c | ||
xcodebuild analyze test-without-building -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "platform=macOS" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ONLY_ACTIVE_ARCH=YES | bundle exec xcpretty -c | ||
iOS: | ||
name: Unit Test iOS | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app | ||
WORKSPACE_NAME: IGListKit.xcworkspace | ||
SCHEME_NAME: IGListKit | ||
strategy: | ||
matrix: | ||
destination: ["name=iPhone 12 Pro"] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Cache RubyGems | ||
uses: actions/cache@v2 | ||
with: | ||
path: vendor/bundle | ||
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-gems- | ||
- name: Install ruby gems. | ||
run: bundle install | ||
|
||
- name: iOS - ${{ matrix.destination }} | ||
run: | | ||
set -o pipefail | ||
xcodebuild build build-for-testing -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "${{ matrix.destination }}" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ONLY_ACTIVE_ARCH=YES | bundle exec xcpretty -c | ||
xcodebuild analyze test-without-building -workspace "${{ env.WORKSPACE_NAME }}" -scheme "${{ env.SCHEME_NAME }}" -destination "${{ matrix.destination }}" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES ONLY_ACTIVE_ARCH=YES | bundle exec xcpretty -c | ||
Cocoapods: | ||
name: Cocoapods Lint | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Cache RubyGems | ||
uses: actions/cache@v2 | ||
with: | ||
path: vendor/bundle | ||
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-gems- | ||
- name: Install ruby gems. | ||
run: bundle install | ||
|
||
- name: Run IGListDiffKit podspec lint | ||
run: bundle exec pod lib lint IGListDiffKit.podspec --allow-warnings | ||
|
||
- name: Run IGListKit podspec lint | ||
run: bundle exec pod lib lint IGListKit.podspec --allow-warnings "--include-podspecs=IGListDiffKit.podspec" | ||
|
||
- name: Run IGListSwiftKit podspec lint | ||
run: bundle exec pod lib lint IGListSwiftKit.podspec --allow-warnings "--include-podspecs=*.podspec" | ||
|
||
SPM-layout-generator: | ||
name: Verify generate_spm_sources_layout.sh is not broken | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app | ||
WORKSPACE_NAME: IGListKit.xcworkspace | ||
PROJECT_NAME: IGListKit.xcodeproj | ||
IOS_DESTINATION: "name=iPhone 12 Pro" | ||
SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH: "spm/Sources/IGListDiffKit/include" | ||
SPM_IG_LIST_DIFF_KIT_SOURCES_PATH: "spm/Sources/IGListDiffKit" | ||
SPM_IG_LIST_KIT_PUBLIC_HEADERS_PATH: "spm/Sources/IGListKit/include" | ||
SPM_IG_LIST_KIT_SOURCES_PATH: "spm/Sources/IGListKit" | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Manually clean SPM Sources folder | ||
run: | | ||
rm -rf "${{ env.SPM_IG_LIST_DIFF_KIT_PUBLIC_HEADERS_PATH }}/*.*" | ||
rm -rf "${{ env.SPM_IG_LIST_DIFF_KIT_SOURCES_PATH }}/*.*" | ||
rm -rf "${{ env.SPM_IG_LIST_KIT_PUBLIC_HEADERS_PATH }}/*.*" | ||
rm -rf "${{ env.SPM_IG_LIST_KIT_SOURCES_PATH }}/*.*" | ||
- name: Regenerate SPM layout | ||
run: sh scripts/generate_spm_sources_layout.sh | ||
|
||
- name: Clean project's ${{ env.PROJECT_NAME }} and ${{ env.WORKSPACE_NAME }} | ||
run: | | ||
rm -rf "${{ env.WORKSPACE_NAME }}" | ||
rm -rf "${{ env.PROJECT_NAME }}" | ||
- name: Verify IGListKit can be build using Package.swift which was generated by 'scripts/generate_spm_sources_layout.sh' | ||
run: xcodebuild -scheme "IGListKit" build -destination "${{ env.IOS_DESTINATION }}" | xcpretty | ||
|
||
SPM-build-from-Package: | ||
name: Verify SPM build by invoking `xcodebuild` on Package.swift | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app | ||
WORKSPACE_NAME: IGListKit.xcworkspace | ||
PROJECT_NAME: IGListKit.xcodeproj | ||
IOS_DESTINATION: "name=iPhone 12 Pro" | ||
strategy: | ||
matrix: | ||
schemeName: ["IGListDiffKit", | ||
"IGListKit", | ||
"IGListSwiftKit"] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Clean project's ${{ env.PROJECT_NAME }} and ${{ env.WORKSPACE_NAME }} | ||
run: | | ||
rm -rf "${{ env.WORKSPACE_NAME }}" | ||
rm -rf "${{ env.PROJECT_NAME }}" | ||
- name: Run ${{ matrix.schemeName}} using Package.swift | ||
run: xcodebuild -scheme "${{ matrix.schemeName}}" build -destination "${{ env.IOS_DESTINATION }}" | xcpretty | ||
|
||
Carthage-XCFramework: | ||
name: Verify Carthage build XCFramework | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.5.1.app | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Carthage build framework | ||
run: carthage build --no-skip-current --use-xcframeworks | ||
|
||
Carthage-Legacy-Lipo-Binaries: | ||
name: Verify Carthage build lipo binaries | ||
runs-on: macos-11 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_11.7.app | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Carthage build framework | ||
run: carthage build --no-skip-current | ||
|
||
Build-Examples: | ||
name: Build Examples and UI tests. | ||
runs-on: macos-10.15 | ||
env: | ||
DEVELOPER_DIR: /Applications/Xcode_12.4.app | ||
IOS_EXAMPLE_WORKSPACE: Examples/Examples-iOS/IGListKitExamples.xcworkspace | ||
TVOS_EXAMPLE_WORKSPACE: Examples/Examples-tvOS/IGListKitExamples.xcworkspace | ||
MACOS_EXAMPLE_WORKSPACE: Examples/Examples-macOS/IGListKitExamples.xcworkspace | ||
EXAMPLE_SCHEME: IGListKitExamples | ||
strategy: | ||
matrix: | ||
iosDestination: ["name=iPhone 12 Pro"] | ||
tvOSDestination: ["name=Apple TV 4K"] | ||
macOSDestination: ["platform=macOS"] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
|
||
- name: Cache RubyGems | ||
uses: actions/cache@v2 | ||
with: | ||
path: vendor/bundle | ||
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }} | ||
restore-keys: | | ||
${{ runner.os }}-gems- | ||
- name: Install ruby gems. | ||
run: bundle install | ||
|
||
- name: Prepare local pods | ||
run: bash scripts/setup.sh | ||
|
||
- name: Build iOS Example - ${{ matrix.iosDestination }} | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.IOS_EXAMPLE_WORKSPACE }}" -scheme "${{ env.EXAMPLE_SCHEME }}" -destination "${{ matrix.iosDestination }}" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c | ||
- name: Run iOS Example's UI Tests - ${{ matrix.iosDestination }} | ||
run: | | ||
set -o pipefail | ||
xcodebuild build test -workspace "${{ env.IOS_EXAMPLE_WORKSPACE }}" -scheme "${{ env.EXAMPLE_SCHEME }}" -destination "${{ matrix.iosDestination }}" -configuration Debug ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c | ||
- name: Build tvOS Example - ${{ matrix.tvOSDestination }} | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.TVOS_EXAMPLE_WORKSPACE }}" -scheme "${{ env.EXAMPLE_SCHEME }}" -destination "${{ matrix.tvOSDestination }}" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c | ||
- name: Build macOS Example - ${{ matrix.macOSDestination }} | ||
run: | | ||
set -o pipefail | ||
xcodebuild build -workspace "${{ env.MACOS_EXAMPLE_WORKSPACE }}" -scheme "${{ env.EXAMPLE_SCHEME }}" -destination "${{ matrix.macOSDestination }}" ONLY_ACTIVE_ARCH=NO CODE_SIGNING_REQUIRED=NO | bundle exec xcpretty -c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.