Skip to content

Commit

Permalink
ci: run tests before enterprise releases (#1271)
Browse files Browse the repository at this point in the history
  • Loading branch information
a7medev authored and ahmedAlaaInstabug committed Sep 15, 2024
1 parent f056a6b commit dd8f8de
Showing 1 changed file with 125 additions and 26 deletions.
151 changes: 125 additions & 26 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ references:
- e2e_ios
- e2e_android

dream11_prepare_config: &dream11_prepare_config
prepare_steps:
- prepare_dream11
requires:
- hold_test_dream11

commands:
install_node_modules:
parameters:
Expand All @@ -36,15 +42,28 @@ commands:
parameters:
working_directory:
type: string
deployment:
type: boolean
default: false
steps:
- restore_cache:
name: Restore Pods Cache
keys:
- v1-pods-{{ checksum "<< parameters.working_directory >>/Podfile.lock" }}
- run:
name: Install Pods
working_directory: << parameters.working_directory >>
command: pod install --deployment
- when:
condition: << parameters.deployment >>
steps:
- run:
name: Install Pods
working_directory: << parameters.working_directory >>
command: pod install --deployment
- unless:
condition: << parameters.deployment >>
steps:
- run:
name: Install Pods
working_directory: << parameters.working_directory >>
command: pod install
- save_cache:
name: Save Pods Cache
key: v1-pods-{{ checksum "<< parameters.working_directory >>/Podfile.lock" }}
Expand Down Expand Up @@ -120,6 +139,11 @@ commands:
name: Remove unused features
command: ./scripts/dream-11-delete-unused-features.sh
working_directory: << parameters.working_directory >>
# Remove the NDK package to avoid dependency conflicts on Android.
- run:
name: Remove the NDK package
command: yarn remove instabug-reactnative-ndk
working_directory: << parameters.working_directory >>/examples/default

notify_github:
parameters:
Expand Down Expand Up @@ -158,20 +182,38 @@ jobs:
command: yarn lint:ci

test_module:
parameters:
prepare_steps:
type: steps
default: []
collect_coverage:
type: boolean
default: false
executor:
name: node/default
steps:
- advanced-checkout/shallow-checkout
- steps: << parameters.prepare_steps >>
- install_node_modules
- run:
name: Run Tests
command: yarn test
- persist_to_workspace:
root: coverage
paths:
- lcov.info
- when:
condition: << parameters.collect_coverage >>
steps:
- persist_to_workspace:
root: coverage
paths:
- lcov.info

test_android:
parameters:
prepare_steps:
type: steps
default: []
collect_coverage:
type: boolean
default: false
executor:
name: android/android-machine
tag: '2024.01.1'
Expand All @@ -180,15 +222,18 @@ jobs:
INSTABUG_SOURCEMAPS_UPLOAD_DISABLE: true
steps:
- advanced-checkout/shallow-checkout
# - node/install-yarn
- steps: << parameters.prepare_steps >>
- install_node_modules
- android/run-tests:
working-directory: android
test-command: ./gradlew test
- persist_to_workspace:
root: ~/project/android/build/reports/jacoco/jacocoTestReport
paths:
- jacocoTestReport.xml
- when:
condition: << parameters.collect_coverage >>
steps:
- persist_to_workspace:
root: ~/project/android/build/reports/jacoco/jacocoTestReport
paths:
- jacocoTestReport.xml

validate_shell_files:
machine:
Expand Down Expand Up @@ -217,10 +262,18 @@ jobs:
app-dir: examples/default
- install_pods:
working_directory: examples/default/ios
deployment: true
- run: git --no-pager diff
- run: git diff-index HEAD --exit-code -p -I EXCLUDED_ARCHS # Ignore Arch Changes

test_ios:
parameters:
prepare_steps:
type: steps
default: []
collect_coverage:
type: boolean
default: false
macos:
xcode: 13.4.1
resource_class: macos.m1.medium.gen1
Expand All @@ -229,6 +282,7 @@ jobs:
INSTABUG_SOURCEMAPS_UPLOAD_DISABLE: true
steps:
- advanced-checkout/shallow-checkout
- steps: << parameters.prepare_steps >>
- install_node_modules
- install_pods:
working_directory: ios
Expand All @@ -243,23 +297,31 @@ jobs:
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 13 Pro Max,OS=15.5' \
test | xcpretty
- run:
name: Convert xcresult into JSON report
working_directory: ios/coverage
command: xcrun xccov view --report --json result.xcresult > xcode.json
- persist_to_workspace:
root: ios/coverage
paths:
- xcode.json
- when:
condition: << parameters.collect_coverage >>
steps:
- run:
name: Convert xcresult into JSON report
working_directory: ios/coverage
command: xcrun xccov view --report --json result.xcresult > xcode.json
- persist_to_workspace:
root: ios/coverage
paths:
- xcode.json

e2e_ios:
parameters:
prepare_steps:
type: steps
default: []
macos:
xcode: 13.4.1
resource_class: macos.m1.medium.gen1
environment:
INSTABUG_SOURCEMAPS_UPLOAD_DISABLE: true
steps:
- advanced-checkout/shallow-checkout
- steps: << parameters.prepare_steps >>
- install_node_modules
- node/install-packages:
pkg-manager: yarn
Expand All @@ -276,6 +338,11 @@ jobs:
name: Rebuild Detox.framework Cache
working_directory: examples/default
command: detox clean-framework-cache && detox build-framework-cache
# This is a workaround until the iOS SDK is updated to prioritize the custom
# Instabug.plist over the internal Config.plist.
- run:
name: Customize API Endpoints
command: ./scripts/customize-ios-endpoints.sh
- run:
name: Detox - Build Release App
working_directory: examples/default
Expand All @@ -286,6 +353,10 @@ jobs:
command: detox test --configuration ios.sim.release --cleanup

e2e_android:
parameters:
prepare_steps:
type: steps
default: []
executor:
name: android/android-machine
tag: '2024.01.1'
Expand All @@ -294,7 +365,7 @@ jobs:
INSTABUG_SOURCEMAPS_UPLOAD_DISABLE: true
steps:
- advanced-checkout/shallow-checkout
# - node/install-yarn
- steps: << parameters.prepare_steps >>
- install_node_modules
- node/install-packages:
pkg-manager: yarn
Expand Down Expand Up @@ -439,11 +510,14 @@ workflows:
- test_android
- test_ios
- lint
- test_module
- test_android
- test_module:
collect_coverage: true
- test_android:
collect_coverage: true
- test_ios:
collect_coverage: true
- validate_shell_files
- sync_generated_files
- test_ios
- e2e_ios
- e2e_android
- hold_generate_snapshot:
Expand Down Expand Up @@ -515,8 +589,33 @@ workflows:
android_package: injazat
api_endpoint: st001013mec1.instabug.com

# Dream11 tests
- hold_test_dream11:
type: approval
- test_module:
name: test_module_dream11
<<: *dream11_prepare_config
- test_android:
name: test_android_dream11
<<: *dream11_prepare_config
- test_ios:
name: test_ios_dream11
<<: *dream11_prepare_config
- e2e_android:
name: e2e_android_dream11
<<: *dream11_prepare_config
- e2e_ios:
name: e2e_ios_dream11
<<: *dream11_prepare_config

# Dream11 release
- hold_release_dream11:
requires: *release_dependencies
requires:
- test_module_dream11
- test_android_dream11
- test_ios_dream11
- e2e_android_dream11
- e2e_ios_dream11
type: approval
filters:
branches:
Expand Down

0 comments on commit dd8f8de

Please sign in to comment.