You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR implements comprehensive optimizations for the SubTrackr CI/CD pipeline, focusing on build speed, parallelization, and deployment reliability. It also addresses several pre-existing test issues and environment configuration problems to ensure a stable and green pipeline.
Key Changes
1. CI/CD Pipeline Infrastructure
Incremental Builds: Integrated dorny/paths-filter to detect changes in specific modules. Jobs for TypeScript, Rust, and Load tests are now conditionally skipped if no relevant files have changed.
Parallel Test Execution: Configured Jest sharding to run tests across 3 parallel shards in the GitHub Actions matrix.
Coverage Aggregation: Updated SonarCloud configuration to download and aggregate lcov reports from multiple shards for accurate coverage metrics.
Deployment & Rollback:
Standardized deployment targets to canary, prod, and rollback.
Added a manual version input to allow rolling back to specific Git tags via workflow_dispatch.
2. Project Health & Test Fixes
Environment: Installed @react-native/jest-preset to resolve compatibility issues with the latest React Native version in the Jest environment.
Audit Service: Resolved a race condition in retention pruning tests using Jest fake timers.
Integration Tests: Fixed a math precision mismatch in monthly spend calculations.
Wallet Service:
Updated superfluid mocks to virtual: true to fix module resolution errors.
Updated test expectations to match the structured WalletError messages.
Import/Export:
Fixed a bug where parseCSV was casting numbers to strings.
Added duplicate detection logic in processImport for 'create' mode.
Mocked AsyncStorage to prevent native module resolution errors during tests.
Verification
Ran the full test suite locally (42 suites, 464 tests) with a 100% pass rate.
Verified YAML syntax for GitHub Actions workflows.
This file contains hidden or 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
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR #241 CI/CD Pipeline Optimization
Description
This PR implements comprehensive optimizations for the SubTrackr CI/CD pipeline, focusing on build speed, parallelization, and deployment reliability. It also addresses several pre-existing test issues and environment configuration problems to ensure a stable and green pipeline.
Key Changes
1. CI/CD Pipeline Infrastructure
dorny/paths-filterto detect changes in specific modules. Jobs for TypeScript, Rust, and Load tests are now conditionally skipped if no relevant files have changed.canary,prod, androllback.versioninput to allow rolling back to specific Git tags viaworkflow_dispatch.2. Project Health & Test Fixes
@react-native/jest-presetto resolve compatibility issues with the latest React Native version in the Jest environment.virtual: trueto fix module resolution errors.WalletErrormessages.parseCSVwas casting numbers to strings.processImportfor 'create' mode.AsyncStorageto prevent native module resolution errors during tests.Verification
Closes #241