react-native-cameraroll/.circleci/config.yml

88 lines
2.2 KiB
YAML

version: 2.1
orbs:
rn: react-native-community/react-native@4.0.4
jobs:
checkout_code:
executor: rn/linux_js
steps:
- checkout
- persist_to_workspace:
root: .
paths: .
analyze:
executor: rn/linux_js
steps:
- attach_workspace:
at: .
- rn/yarn_install
- run:
name: Eslint
command: yarn run validate:eslint
- run:
name: Flow
command: yarn run validate:flow
- run:
name: TypeScript
command: yarn run validate:typescript
- run:
name: Jest
command: yarn run test:jest
- run:
name: Android JavaScript Bundle
command: yarn run test:detox:android:bundle:release
- run:
name: iOS JavaScript Bundle
command: yarn run test:detox:ios:bundle:release
publish:
executor: rn/linux_js
steps:
- attach_workspace:
at: .
- rn/yarn_install
- run:
name: Publish to NPM
command: yarn ci:publish
workflows:
test:
jobs:
- checkout_code
- analyze:
requires:
- checkout_code
- rn/android_build:
name: android_debug_build
project_path: "example/android"
build_type: debug
requires:
- analyze
- rn/android_build:
name: android_release_build
project_path: "example/android"
build_type: release
requires:
- analyze
# - rn/android_test:
# logcat_grep: "com.camerarollexample"
# detox_configuration: "android.emu.release"
# requires:
# - android_release_build
# - rn/ios_build_and_test:
# project_path: "example/ios/CameraRollExample.xcodeproj"
# derived_data_path: "example/ios/build"
# device: "iPhone X"
# build_configuration: "Release"
# scheme: "CameraRollExample"
# detox_configuration: "ios.sim.release"
# requires:
# - analyze
- publish:
requires:
- checkout_code
- analyze
filters:
branches:
only: master