Viewing File: /home/ubuntu/todaykat-frontend-base/node_modules/react-native-url-polyfill/.circleci/config.yml

aliases:
  - &save-cache-yarn
    save_cache:
      key: v1-yarn-packages-{{ checksum "yarn.lock" }}
      paths:
        - ~/.cache/yarn
  - &restore-cache-yarn
    restore_cache:
      name: Restore Yarn Package Cache
      keys:
        - v1-yarn-packages-{{ checksum "yarn.lock" }}
  - &save-cache-detox
    save_cache:
      key: v1-detox-{{ checksum "yarn.lock"}}
      paths:
        - node_modules
        - ios/Pods
  - &restore-cache-detox
    restore_cache:
      name: Restoring Detox Cache
      keys:
        - v1-detox-{{ checksum "yarn.lock"}}
  - &save-android-build-cache
    save_cache:
      paths:
        - ~/.gradle/caches
        - ~/.gradle/wrapper
        - ~/.android/build-cache
      key: v1-gradle-build-cache-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}-{{ checksum "yarn.lock" }}
      when: always # Ensures build assets are cached even on failed builds
  - &restore-android-build-cache
    restore_cache:
      name: Restoring Android & Gradle cache
      keys:
        - v1-gradle-build-cache-{{ checksum "android/build.gradle" }}-{{ checksum "android/app/build.gradle" }}-{{ checksum "yarn.lock" }}
  - &attach-workspace
    attach_workspace:
      at: ~/react-native-url-polyfill

defaults: &defaults
  working_directory: ~/react-native-url-polyfill
  docker:
    - image: circleci/node:14

ios: &ios
  macos:
    xcode: 11

android: &android
  docker:
    - image: circleci/android:api-28-node
  environment:
    JAVA_TOOL_OPTIONS: '-Xmx1536m'
    GRADLE_OPTS: '-Dorg.gradle.daemon=false -Dorg.gradle.workers.max=2'

version: 2.1
commands:
  test-detox-ios:
    steps:
      - *attach-workspace
      - *restore-cache-detox
      - run:
          name: Yarn version
          command: yarn -v
      - run:
          name: Yarn Install
          command: |
            yarn install --frozen-lockfile --no-progress --non-interactive --cache-folder ~/.cache/yarn
      - run:
          name: Install Detox
          command: |
            brew update
            brew tap wix/brew
            brew install applesimutils
            yarn global add detox-cli
      - run:
          name: Clean Detox
          command: |
            detox clean-framework-cache && detox build-framework-cache
      - run:
          name: Install Pods
          command: |
            curl https://cocoapods-specs.circleci.com/fetch-cocoapods-repo-from-s3.sh | bash -s cf
            cd ios && pod install --repo-update
      - run:
          name: Run Detox on iOS
          command: yarn e2e:ios
      - *save-cache-detox
  test-hermes:
    steps:
      - *attach-workspace
      - *restore-android-build-cache
      - run:
          name: Yarn version
          command: yarn -v
      - run:
          name: Yarn Install
          command: |
            yarn install --frozen-lockfile --no-progress --non-interactive --cache-folder ~/.cache/yarn
      - run:
          name: Enable Hermes
          command: sed -i "s/enableHermes:\sfalse/enableHermes:\ true/g" android/app/build.gradle
      - run:
          name: Build APK
          command: cd android && ./gradlew assembleRelease
      - *save-android-build-cache

jobs:
  checkout:
    <<: *defaults
    steps:
      - checkout
      - *restore-cache-yarn
      - run:
          name: Yarn version
          command: yarn -v
      - run:
          name: Yarn Install
          command: |
            yarn install --frozen-lockfile --no-progress --non-interactive --cache-folder ~/.cache/yarn
      - *save-cache-yarn
      - persist_to_workspace:
          root: .
          paths: .
  lint:
    <<: *defaults
    steps:
      - *attach-workspace
      - run:
          name: Lint
          command: yarn lint
  test-js:
    <<: *defaults
    steps:
      - *attach-workspace
      - run:
          name: Run Jest
          command: yarn test
  rn-0-60-test-ios:
    <<: *ios
    working_directory: ~/react-native-url-polyfill/detox/rn-0.60
    steps:
      - test-detox-ios
  rn-0-62-test-ios:
    <<: *ios
    working_directory: ~/react-native-url-polyfill/detox/rn-0.62
    steps:
      - test-detox-ios
  rn-0-62-test-hermes:
    <<: *android
    working_directory: ~/react-native-url-polyfill/detox/rn-0.62
    steps:
      - test-hermes
  rn-0-63-test-ios:
    <<: *ios
    working_directory: ~/react-native-url-polyfill/detox/rn-0.63
    steps:
      - test-detox-ios
  rn-0-63-test-hermes:
    <<: *android
    working_directory: ~/react-native-url-polyfill/detox/rn-0.63
    steps:
      - test-hermes

workflows:
  tests:
    jobs:
      - checkout
      - lint:
          requires:
            - checkout
      - test-js:
          requires:
            - checkout
      - rn-0-60-test-ios:
          requires:
            - lint
            - test-js
      - rn-0-62-test-ios:
          requires:
            - lint
            - test-js
      - rn-0-62-test-hermes:
          requires:
            - lint
            - test-js
      - rn-0-63-test-ios:
          requires:
            - lint
            - test-js
      - rn-0-63-test-hermes:
          requires:
            - lint
            - test-js
Back to Directory File Manager