Mark more tests as flaky #1190
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: push | |
env: | |
ACTIONS_ALLOW_UNSECURE_COMMANDS: true | |
jobs: | |
codegen_tests: | |
name: CodeGen Tests | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Clone Project | |
uses: actions/checkout@v4 | |
- name: Run Lucid CodeGen tests | |
run: | | |
swift test --package-path CodeGen --enable-test-discovery | |
lucid_tests: | |
name: Lucid-iOS Tests | |
runs-on: macos-15 | |
timeout-minutes: 30 | |
env: | |
FASTLANE_LOGS: fastlane/test_output | |
FASTLANE_FRAGILE_LOGS: fastlane/fragile_test_output | |
GITHUB_ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} | |
FRAGILE_TESTS: LucidTests/APIClientQueueProcessorTests/test_processor_does_attempt_to_process_request_if_already_running_concurrent_request,LucidTests/AsyncTaskQueueTests/test_that_it_immediately_starts_the_next_time_after_an_operation_has_completed,LucidTests/BaseStoreTests/test_store_should_set_1000_entities_in_under_1_second,LucidTests/CacheStoreTests/test_store_should_set_1000_entities_in_under_1_second,LucidTests/CoreDataStoreTests/test_store_should_not_retrieve_documents_with_an_invalid_expression_equal_to_another_expression,LucidTests/CoreDataStoreTests/test_store_should_set_1000_entities_in_under_1_second,LucidTests/CoreManagerContractTests/test_continuous_obvserver_should_get_filtered_results_matching_entities_that_meet_contract_requirements,LucidTests/CoreManagerContractTests/test_core_manager_get_should_filter_results_when_enity_does_not_meet_contract_requirements,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_complete_results_when_entity_meets_contract_requirements,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_complete_results_when_no_contract_is_provided,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_empty_results_when_no_entities_in_local_store_meet_contract_requirements,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_empty_results_when_no_entities_meet_contract_requirements_in_remote_store_for_remote_data_source,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_local_result_when_no_entities_meet_contract_requirements_in_remote_store_for_remote_or_local_data_source,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_results_from_remote_if_any_entities_in_local_store_do_not_meet_contract_requirements_for_local_or_remote_data_source,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_results_from_remote_when_no_entities_in_local_store_meet_contract_requirements_for_local_or_remote_data_source,LucidTests/CoreManagerContractTests/test_core_manager_get_should_return_results_from_remote_when_no_entities_meet_contract_requirements_in_local_store_for_local_then_remote_data_source,LucidTests/CoreManagerPropertyTests/test_that_delegate_gets_called_when_observers_are_released,LucidTests/CoreManagerPropertyTests/test_that_observer_does_not_get_update_for_duplicate_values,LucidTests/CoreManagerTests/test_continuous_observer_should_receive_all_updates_in_order,LucidTests/CoreManagerTests/test_get_local_or_remote_returns_nil_result_if_local_result_missing_and_receiving_empty_response_error,LucidTests/CoreManagerTests/test_get_local_or_remote_returns_nil_result_if_local_result_missing_and_receiving_internet_connection_error,LucidTests/CoreManagerTests/test_get_local_then_remote_returns_nil_result_if_local_result_missing_and_receiving_empty_response_error,LucidTests/CoreManagerTests/test_get_local_then_remote_returns_nil_result_if_local_result_missing_and_receiving_internet_connection_error,LucidTests/CoreManagerTests/test_get_request_returns_request_token_and_metadata_for_local_then_remote_and_local_store_fails,LucidTests/CoreManagerTests/test_get_request_returns_request_token_and_metadata_for_remote_only_strategy,LucidTests/CoreManagerTests/test_get_returns_error_for_no_access_level,LucidTests/CoreManagerTests/test_get_returns_failure_for_change_from_local_access_to_no_access,LucidTests/CoreManagerTests/test_get_returns_failure_for_change_from_local_access_to_remote_access,LucidTests/CoreManagerTests/test_get_returns_failure_for_change_from_remote_access_to_local_access,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_memory_first_but_ignore_error_and_return_remote_store_error_when_strategy_is_local_then_remote,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_when_entity_is_removed,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_when_entity_is_set,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_with_different_query_when_entity_is_not_found,LucidTests/CoreManagerTests/test_get_request_returns_request_token_and_metadata_for_remote_only_strategy_with_do_no_persist,LucidTests/CoreManagerTests/test_get_returns_failure_for_change_from_remote_access_to_no_access,LucidTests/CoreManagerTests/test_get_returns_local_data_for_local_access_level,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_memory_store_then_not_cache_it_when_strategy_is_local_only,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_with_different_query_when_entity_is_not_in_filter_anymore,LucidTests/RecoverableStoreTests/test_store_affects_both_inner_stores_in_remove_all_operations_async,LucidTests/RecoverableStoreTests/test_store_affects_both_inner_stores_in_remove_operations_async,LucidTests/RecoverableStoreTests/test_store_only_reflects_main_store_in_get_operations,LucidTests/RecoverableStoreTests/test_store_only_reflects_main_store_in_get_operations_async,LucidTests/RecoverableStoreTests/test_store_should_delete_all_entities_async,LucidTests/RecoverableStoreTests/test_store_should_overwrite_a_non_empty_recovery_store_with_a_non_empty_main_store_at_init,LucidTests/RecoverableStoreTests/test_store_should_overwrite_an_empty_main_store_with_a_non_empty_recovery_store_at_init,LucidTests/RecoverableStoreTests/test_that_merging_entities_contains_updated_data_async,LucidTests/RecoverableStoreTests/test_that_merging_entities_updates_requested_lazy_value_with_requested_lazy_value_async,LucidTests/RelationshipControllerTests/test_relationship_controller_should_continuously_send_events_when_first_event_comes_from_continuous_signal,LucidTests/RelationshipControllerTests/test_relationship_controller_should_continuously_send_events_when_first_event_comes_from_once_signal,LucidTests/RelationshipControllerTests/test_relationship_controller_should_insert_many_root_entities_with_many_relationship_entities_in_graph,LucidTests/StoreStackTests/test_should_fail_to_remove_in_remote_store_only_with_memory_store_first,LucidTests/CoreDataStoreTests/test_store_should_not_retrieve_documents_with_an_invalid_expression_matched_against_another_expression,LucidTests/CoreManagerTests/test_that_multiple_search_requests_to_the_same_core_manager_do_not_block_each_other,LucidTests/CoreManagerTests/test_user_access_validation_remove_returns_failure_for_no_access_level,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_memory_first_but_ignore_error_and_reach_remote_store_when_strategy_is_local_then_remote,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_memory_first_but_ignore_error_and_reach_remote_store_when_strategy_is_local_then_remote_async,LucidTests/RecoverableStoreTests/test_that_merging_function_is_called_when_a_matching_record_exists,LucidTests/CoreManagerTests/test_manager_should_get_entity_from_memory_store_only_when_strategy_is_local_only,LucidTests/CoreManagerTests/test_get_returns_remote_data_for_remote_access_level,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_remote_store_then_not_cache_it_and_fall_back_to_memory_store_when_cache_strategy_is_remote_or_local,LucidTests/CoreManagerTests/test_manager_should_get_entity_from_memory_first_then_from_remote_store_when_strategy_is_local_then_remote,LucidTests/CoreManagerTests/test_manager_should_get_entity_from_memory_store_then_not_cache_it_when_strategy_is_local_only,LucidTests/CoreManagerTests/test_manager_should_not_return_nil_from_cache_but_should_return_nil_from_remote_store_when_strategy_is_local_then_remote,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_when_entity_changed,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_when_lazy_value_changes_from_requested_to_new_requested_value,LucidTests/AsyncTaskQueueTests/test_that_it_waits_until_barrier_finishes_before_starting_next_operation,LucidTests/RecoverableStoreTests/test_that_merging_function_is_called_when_a_matching_record_exists_async,LucidTests/CoreManagerPropertyTests/test_that_observer_gets_update,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_remote_store_then_not_cache_it_when_data_source_is_remote_only,LucidTests/CoreManagerTests/test_manager_should_fail_to_get_entity_from_remote_store_when_cache_strategy_is_remote_only,LucidTests/CoreManagerTests/test_manager_should_get_entity_from_remote_store_only_when_cache_strategy_is_remote_only,LucidTests/CoreManagerTests/test_manager_should_get_entity_from_remote_store_then_cache_it_when_cache_strategy_is_remote_only,LucidTests/CoreManagerTests/test_manager_should_not_get_entity_from_memory_first_but_still_reach_remote_store_when_strategy_is_local_then_remote,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_when_lazy_value_changes_from_unrequested_to_requested,LucidTests/CoreManagerTests/test_manager_should_send_entity_update_to_provider_with_different_query_when_entity_changed,LucidTests/CoreManagerTests/test_set_returns_failure_for_change_from_local_access_to_no_access,LucidTests/CoreManagerTests/test_set_returns_failure_for_change_from_remote_access_to_local_access,LucidTests/CoreManagerTests/test_set_returns_failure_for_change_from_remote_access_to_no_access | |
steps: | |
- name: Clone Project | |
uses: actions/checkout@v4 | |
- name: Retrieve Xcode Version from File | |
id: get-xcode-version | |
run: echo "xcode-version=$(cat .xcode-version)" >> $GITHUB_OUTPUT | |
# use .xcode-version file to select the version of Xcode | |
- name: Select Xcode Version | |
uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: '${{ steps.get-xcode-version.outputs.xcode-version }}' | |
- name: Run Lucid-iOS Tests | |
run: | | |
fastlane scan --scheme Lucid-iOS --skip_testing "$FRAGILE_TESTS" --device "iPhone 16" --output_directory $FASTLANE_LOGS --result_bundle true | |
# Some tests need to be reworked. Don't forget about them, but don't crash the build either | |
# https://scribdjira.atlassian.net/browse/IPT-4387 | |
- name: Run Fragile Tests | |
continue-on-error: true | |
run: | | |
fastlane scan --scheme Lucid-iOS --only_testing "$FRAGILE_TESTS" --device "iPhone 16" --output_directory $FASTLANE_FRAGILE_LOGS --result_bundle true | |
- name: Bundle Log Files | |
run: | | |
cd $FASTLANE_LOGS | |
zip -rX build-artifacts.zip . | |
cd $OLDPWD | |
cd $FASTLANE_FRAGILE_LOGS | |
zip -rX build-artifacts.zip . | |
- name: Upload Fastlane Log Files | |
uses: actions/upload-artifact@v4 | |
with: | |
name: build-artifacts | |
path: | | |
${{ env.FASTLANE_LOGS }}/build-artifacts.zip | |
${{ env.FASTLANE_FRAGILE_LOGS }}/build-artifacts.zip |