ADDED FUNCTIONALITY:
- Telegram Bot API integration for publishing releases to channel
- Automatic APK file uploads (ARM64, ARM32, x86_64) to Telegram
- Rich formatted messages with release info (version, commit, branch, files sizes)
- Same message format as GitHub releases with Markdown formatting
INTEGRATION DETAILS:
- Bot Token: 8376391003:AAHhDrAkGDQbxK7DAvtFfoXyp3cv9sGdkwg
- Channel ID: -1003117144167 (3117144167)
- Uploads all 3 APK variants with descriptions
- Sends release info message with download links
WORKFLOW:
- Runs after successful GitHub release creation
- Uses curl for Telegram Bot API calls
- Includes error handling and progress logging
- Updates GitHub Actions summary with Telegram status
This enables automated release distribution through both GitHub and Telegram channels.
Integration Testing Infrastructure:
- Add real magnet link test using Sintel (Creative Commons licensed film)
- Create comprehensive torrent integration tests that work in GitHub Actions
- Add CI environment detection and validation tests
- Enable integration test execution in GitHub Actions workflow
Sintel Integration Test (test/integration/torrent_integration_test.dart):
- Uses official Sintel magnet link from Blender Foundation
- Tests real magnet link parsing and validation
- Covers all torrent operations: add, pause, resume, remove
- Tests file priority management and video file detection
- Includes performance tests and timeout handling
- Validates torrent hash extraction and state management
- Works with mock platform channel (no real downloads)
CI Environment Test (test/integration/ci_environment_test.dart):
- Detects GitHub Actions and CI environments
- Validates Dart/Flutter environment in CI
- Tests network connectivity gracefully
- Verifies test infrastructure availability
GitHub Actions Integration:
- Add integration test step to test.yml workflow
- Set CI and GITHUB_ACTIONS environment variables
- Use --reporter=expanded for detailed test output
- Run after unit tests but before coverage upload
Key Features:
- Mock platform channel prevents real downloads
- Works on any platform (Linux/macOS/Windows)
- Fast execution suitable for CI pipelines
- Uses only open source, legally free content
- Comprehensive error handling and timeouts
- Environment-aware test configuration
Documentation:
- Detailed README for integration tests
- Troubleshooting guide for CI issues
- Explanation of mock vs real testing approach
- Security and licensing considerations
This enables thorough testing of torrent functionality
in GitHub Actions while respecting copyright and
maintaining fast CI execution times.
GitHub Actions improvements:
- Fix release workflow to prevent draft releases on new workflow runs
- Add automatic deletion of previous releases with same tag
- Improve test workflow with torrent-engine-downloads branch support
- Update Flutter version and add code generation step
- Add Android lint checks and debug APK builds
- Remove emoji from all workflow outputs for cleaner logs
- Add make_latest flag for proper release versioning
Test improvements:
- Add comprehensive unit tests for TorrentInfo model
- Add tests for FilePriority enum with comparison operators
- Add DownloadsProvider tests for utility methods
- Add widget tests for UI components and interactions
- Test video file detection and main file selection
- Test torrent state detection (downloading, paused, completed)
- Test byte formatting for file sizes and speeds
All tests validate the torrent downloads functionality
and ensure proper integration with Android engine.
- Reduce Gradle RAM from 4GB to 2GB with optimizations
- Add GitLab CI/CD with separate jobs for TorrentEngine and APK
- Add GitHub Actions workflow as alternative
- Enable parallel builds and caching
- Configure automated artifact uploads
- Add comprehensive CI/CD documentation