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