Merge pull request #297 from bitmovin/ios-project-improvements #562
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
name: CI | |
on: | |
pull_request: | |
paths-ignore: | |
- '*.md' | |
push: | |
branches: [development] | |
paths-ignore: | |
- '*.md' | |
concurrency: | |
group: ci-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
code-style-typescript: | |
name: Code style Typescript | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- name: Install node_modules | |
run: yarn install --frozen-lockfile | |
- name: Lint Typescript | |
run: yarn lint | |
code-style-android: | |
name: Code style Android | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Set up Gradle cache | |
uses: gradle/gradle-build-action@v2 | |
with: | |
cache-read-only: ${{ github.ref != 'refs/heads/development' }} | |
- name: Check code style | |
run: ./gradlew ktlintCheck | |
working-directory: android | |
code-style-ios: | |
name: Code style iOS | |
runs-on: macOS-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '14.1' | |
- name: Install dependencies | |
run: brew bundle install | |
- name: Check code style | |
run: swiftlint --strict | |
test-build-typescript: | |
name: Build Typescript | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- name: Install node_modules | |
run: yarn install --frozen-lockfile | |
- name: Install node_modules (example/) | |
run: yarn install --frozen-lockfile --cwd example | |
- name: Compile TypeScript | |
run: yarn typescript | |
test-build-docs: | |
name: Build API docs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- name: Install node_modules | |
run: yarn install --frozen-lockfile | |
- name: Install node_modules (example/) | |
run: yarn install --frozen-lockfile --cwd example | |
- name: Build docs | |
run: yarn docs | |
test-build-android: | |
name: Build Android | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Install node_modules | |
run: yarn install --frozen-lockfile | |
- name: Install node_modules (example/) | |
run: yarn install --frozen-lockfile --cwd example | |
- name: Set up Gradle cache | |
uses: gradle/gradle-build-action@v2 | |
with: | |
cache-read-only: ${{ github.ref != 'refs/heads/development' }} | |
- name: Build Android example | |
run: ./gradlew assembleDebug --build-cache | |
working-directory: example/android | |
test-build-ios: | |
name: Build iOS | |
runs-on: macOS-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '14.1' | |
- name: Install node_modules | |
run: yarn install --frozen-lockfile | |
- name: Install node_modules (example/) | |
run: yarn install --frozen-lockfile --cwd example | |
- name: Install dependencies | |
run: brew bundle install | |
- name: Restore Pods cache | |
id: pods-cache-restore | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
.cocoapods-cache | |
example/ios/Pods | |
key: pods-${{ hashFiles('example/ios/Podfile.lock') }} | |
restore-keys: pods- | |
- name: Install pods | |
run: | | |
pod repo remove trunk | |
pod repo add bitmovin https://github.com/bitmovin/cocoapod-specs.git || pod repo update bitmovin | |
pod install --repo-update | |
working-directory: example/ios | |
env: | |
CP_HOME_DIR: ${{ github.workspace }}/.cocoapods-cache | |
NO_FLIPPER: 1 | |
- name: Save Pods cache | |
if: steps.pods-cache-restore.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: | | |
.cocoapods-cache | |
example/ios/Pods | |
key: ${{ steps.pods-cache-restore.outputs.cache-primary-key }} | |
- name: Build iOS example | |
run: set -o pipefail && xcodebuild -workspace BitmovinPlayerReactNativeExample.xcworkspace -scheme BitmovinPlayerReactNativeExample -configuration Debug build CODE_SIGNING_ALLOWED='NO' | xcpretty | |
working-directory: example/ios | |
env: | |
NSUnbufferedIO: YES | |
test-build-tvos: | |
name: Build tvOS | |
runs-on: macOS-12 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Setup node and npm registry | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '16' | |
registry-url: 'https://registry.npmjs.org/' | |
cache: 'yarn' | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '14.1' | |
- name: Install node_modules | |
run: yarn install --frozen-lockfile | |
- name: Install node_modules (example/) | |
run: yarn install --frozen-lockfile --cwd example | |
- name: Install dependencies | |
run: brew bundle install | |
- name: Restore Pods cache | |
id: pods-cache-restore | |
uses: actions/cache/restore@v3 | |
with: | |
path: | | |
.cocoapods-cache | |
example/ios/Pods | |
key: pods-${{ hashFiles('example/ios/Podfile.lock') }} | |
restore-keys: pods- | |
- name: Install pods | |
run: | | |
pod repo remove trunk | |
pod repo add bitmovin https://github.com/bitmovin/cocoapod-specs.git || pod repo update bitmovin | |
pod install --repo-update | |
working-directory: example/ios | |
env: | |
CP_HOME_DIR: ${{ github.workspace }}/.cocoapods-cache | |
- name: Save Pods cache | |
if: steps.pods-cache-restore.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
with: | |
path: | | |
.cocoapods-cache | |
example/ios/Pods | |
key: ${{ steps.pods-cache-restore.outputs.cache-primary-key }} | |
- name: Build tvOS example | |
run: set -o pipefail && xcodebuild -workspace BitmovinPlayerReactNativeExample.xcworkspace -scheme BitmovinPlayerReactNativeExample-tvOS -configuration Debug build CODE_SIGNING_ALLOWED='NO' | xcpretty | |
working-directory: example/ios | |
env: | |
NSUnbufferedIO: YES |