diff --git a/.circleci/config.yml b/.circleci/config.yml index 6c31622..ff77153 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,50 +9,72 @@ version: 2.1 orbs: android: circleci/android@2.3.0 -# Define a job to be invoked later in a workflow. -# See: https://circleci.com/docs/2.0/configuration-reference/#jobs -jobs: - # Below is the definition of your job to build and test your app, you can rename and customize it as you want. - build-and-test: - # Parameters used for determining - parameters: - flavour: - type: string - default: "Driver" - # These next lines define the Android machine image executor. - # See: https://circleci.com/docs/2.0/executor-types/ - executor: - name: android/android-machine - tag: 2023.05.1 - # Add steps to the job - # See: https://circleci.com/docs/2.0/configuration-reference/#steps +commands: + setup_repo: + description: checkout repo and android dependencies steps: - # Checkout the code and its submodule as the first step. - checkout - # config git user - run: name: Setup subtree for test data command: | git config --global user.email "$GIT_EMAIL" git config --global user.name "$GIT_EMAIL" git subtree add --prefix=driver_app_data https://github.com/hmalik144/driver_app_data main + - restore_cache: + key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} + - run: + name: Chmod permissions + command: sudo chmod +x ./gradlew + - run: + name: Download Dependencies + command: ./gradlew androidDependencies + - save_cache: + paths: + - ~/.gradle + key: jars-{{ checksum "build.gradle" }}-{{ checksum "app/build.gradle" }} + # Setup files for build. - run: name: Setup variables for build command: | echo "$GOOGLE_SERVICES_KEY" > "app/google-services.json" - - run: - name: Grant execute permission for gradlew - command: | - chmod +x gradlew + run_tests: + description: run tests for flavour specified + parameters: + flavour: + type: string + default: "Driver" + steps: # The next step will run the unit tests - android/run-tests: test-command: ./gradlew test<< parameters.flavour >>DebugUnitTest --continue + - store_artifacts: + path: app/build/reports + destination: reports + - store_test_results: + path: app/build/test-results + run_ui_tests: + description: start firebase emulator and run ui tests for flavour specified + parameters: + flavour: + type: string + default: "AtlasWeather" + steps: + # Download and cache dependencies + - restore_cache: + keys: + - emulator-cache-v1- # Install Firebase tools needed for firebase emulator - run: name: Install firebase tools command: | curl -sL firebase.tools | bash + # Save cache for firebase tools + - save_cache: + paths: + - .firebase/emulator + - ~/.cache/firebase/emulators/ + key: emulator-cache-v1-{{ epoch }} # Then start firebase emulator in the background - run: name: Start firebase emulator @@ -92,6 +114,30 @@ jobs: # Then publish the results of the Instrumentation tests! - store_test_results: path: app/build/outputs/androidTest-results/connected +# Define a job to be invoked later in a workflow. +# See: https://circleci.com/docs/2.0/configuration-reference/#jobs +jobs: + # Below is the definition of your job to build and test your app, you can rename and customize it as you want. + build-and-test: + # Parameters used for determining + parameters: + flavour: + type: string + default: "Driver" + # These next lines define the Android machine image executor. + # See: https://circleci.com/docs/2.0/executor-types/ + executor: + name: android/android-machine + tag: 2023.05.1 + # Add steps to the job + # See: https://circleci.com/docs/2.0/configuration-reference/#steps + steps: + # Checkout the code and its submodule as the first step. + - setup_repo + - run_tests: + flavour: << parameters.flavour >> + - run_ui_tests: + flavour: << parameters.flavour >> # Assemble assemble-and-release: # Parameters used for determining @@ -103,6 +149,7 @@ jobs: name: android/android-machine tag: 2023.05.1 steps: + - setup_repo - run: name: Setup variables for release command: | diff --git a/app/src/androidTestAdmin/java/h_mal/appttude/com/driver/tests/DocumentApproverTest.kt b/app/src/androidTestAdmin/java/h_mal/appttude/com/driver/tests/DocumentApproverTest.kt index 244726f..d538e1d 100644 --- a/app/src/androidTestAdmin/java/h_mal/appttude/com/driver/tests/DocumentApproverTest.kt +++ b/app/src/androidTestAdmin/java/h_mal/appttude/com/driver/tests/DocumentApproverTest.kt @@ -43,6 +43,8 @@ class DocumentApproverTest : AdminBaseTest() { fun loginAsAdmin_declineDocumentForDriver_documentDeclined() { homeAdmin { waitUntilDisplayed() + // TODO: find a better way to waitw + waitFor(1200) clickOnItem("kabirmhkhan@gmail.com") }