Skip to content

Improve start release workflow #854

Improve start release workflow

Improve start release workflow #854

Workflow file for this run

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
env:
NO_FLIPPER: 1
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: Install node_modules (integration_test/)
run: yarn install --frozen-lockfile --cwd integration_test
- 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: Install node_modules (integration_test/)
run: yarn install --frozen-lockfile --cwd integration_test
- 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: Install node_modules (integration_test/)
run: yarn install --frozen-lockfile --cwd integration_test
- 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
integration_test/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
integration_test/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
integration_test/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
integration_test/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