Skip to content

feat: optimize CI/CD pipeline and fix project tests#351

Open
Vivian-04 wants to merge 1 commit intoSmartdevs17:mainfrom
Vivian-04:feat/ci-pipeline-optimization-final
Open

feat: optimize CI/CD pipeline and fix project tests#351
Vivian-04 wants to merge 1 commit intoSmartdevs17:mainfrom
Vivian-04:feat/ci-pipeline-optimization-final

Conversation

@Vivian-04
Copy link
Copy Markdown
Contributor

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

  • 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.
  • Confirmed pre-commit hooks (eslint/prettier) pass successfully.

Closes #241

@Smartdevs17
Copy link
Copy Markdown
Owner

⚠️ Cannot merge

Hi @Vivian-04,

This PR could not be merged. Please check for conflicts and resolve them.


🤖 Drips Wave Review Agent

@Vivian-04
Copy link
Copy Markdown
Contributor Author

Vivian-04 commented Apr 29, 2026 via email

@Smartdevs17
Copy link
Copy Markdown
Owner

Hiii I’m so sorry, i’m just seeing this now Can i still check and resolve this?

On Wed, 29 Apr 2026 at 10:47, Stephen Joseph @.> wrote: Smartdevs17 left a comment (Smartdevs17/SubTrackr#351) <#351 (comment)> ⚠️ Cannot merge Hi @Vivian-04 https://github.com/Vivian-04, This PR could not be merged. Please check for conflicts and resolve them. ------------------------------ 🤖 Drips Wave Review Agent — Reply to this email directly, view it on GitHub <#351 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/BJGHGTAXDZC6RYI6335NIY34YHFUFAVCNFSM6AAAAACYKDVKOSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHM2DGNBSGU3DKNZVGM . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub. You are receiving this because you were mentioned.Message ID: @.>

Yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement subscription CI/CD pipeline optimization

2 participants