CircleCI integration
  • 22 Sep 2022
  • 2 Minutes to read
  • Contributors
  • Dark
    Light

CircleCI integration

  • Dark
    Light

Autify provides the official CircleCI Orb to upload a build and run a test plan easily from your CircleCI workflow.

Getting started

This document describes how to use our CircleCI integrations with your Git repository step-by-step.

Prerequisites

First, we assume you already have CircleCI workflow to build your application. We'll add an Autify test job right after the build job to confirm the newly built application doesn't break the end-to-end experience.

Secondly, you need to create a test plan on Autify for Mobile. Please note the URL of your test plan e.g. https://mobile-app.autify.com/projects/AAA/test_plans/BBB and we'll use it later.

You also need to create a personal access token of Autify for Mobile. Please note the generated token somewhere so that we can store the value on Environment Variables later.

Note: Since the personal access token is associated with a single user, we recommend you to create a machine user in your organization and use its personal access token for CI/CD integration.

Store personal access token on Environment Variables

Store the personal access token you generated above on Environment Variables by following CircleCI's document. You can use an arbitrary name for the Environment Variable but if you name AUTIFY_MOBILE_ACCESS_TOKEN, you don't have to specify the name later because this is the default name. Assuming you named so here.

Add CircleCI job to upload a build and run Autify for Mobile

Finally, let's add a new step to your existing CircleCI workflow. See the examples below. The autify-test-url value should be the URL you noted above.


Upload a new build file and start a test (no waiting for the finish of the test):

orbs:
  android: circleci/android@2.0
  autify-mobile: autify/autify-mobile@3

jobs:
  # Example build jobs. Needs to persist the build file to workspace.
  build-android:
    executor:
      name: android/android-machine
    steps:
      - ...
      - run: ./gradlew assembleRelease
      - persist_to_workspace:
          paths:
            - android-release.apk
          root: app/build/outputs/apk/release
  build-ios:
    macos:
      xcode: 13.4.1
    steps:
      - ...
      - run: xcodebuild -configuration Debug -target hello-world -arch x86_64 -sdk iphonesimulator
      - persist_to_workspace:
          paths:
            - hello-world.app
          root: build/Debug-iphonesimulator

workflows:
  test-run-andriod:
    jobs:
      - build-android
      - autify-mobile/test-run:
          requires:
            - build-android
          autify-test-url: 'https://mobile-app.autify.com/projects/AAA/test_plans/BBB'
          build-path: android-release.apk

  test-run-ios:
    jobs:
      - build-ios
      - autify-mobile/test-run:
          requires:
            - build-ios
          autify-test-url: 'https://mobile-app.autify.com/projects/AAA/test_plans/BBB'
          build-path: hello-world.app

If you want to wait until the test finishes or timed out:

    jobs:
      - autify-mobile/test-run:
          ...
          wait: true
          timeout: 300

CAVEAT: This will consume your CircleCI build minutes while waiting. Be careful when extending the timeout value.

Just upload a new build file (workspace-id is the id right after /projects/ in the URL you noted above):

    # Android
    jobs:
      - build-android
      - autify-mobile/build-upload:
          requires:
            - build-android
          build-path: android-release.apk
          workspace-id: AAA
          
    ## iOS
    jobs:
      - build-ios
      - autify-mobile/build-upload:
          requires:
            - build-ios
          build-path: hello-world.app
         workspace-id: AAA

Conclusion

By using Autify's CircleCI Orb, you can automatically run a test plan after build so that you can detect regressions right away and take an appropriate actions without wasting time.


First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.