Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
034735b
Implement core services for CCTracker application
Jun 27, 2025
ee651fe
Implement comprehensive Usage Analytics dashboard with project-level …
Jun 27, 2025
4a66bcf
Update changelog with Usage Analytics implementation details
Jun 27, 2025
94622e2
Fix cost calculation predictions to prevent 53K USD anomaly
Jun 27, 2025
5e03432
Update changelog with cost calculation fix details
Jun 27, 2025
320d2f6
Create centralized CostCalculatorService to fix calculation inconsist…
Jun 27, 2025
b321384
Update changelog with centralized cost calculator details
Jun 27, 2025
e80003f
feat: complete Catppuccin theme collection and improve translations
Jun 27, 2025
1218e58
feat: complete translation implementation for analytics components
Jun 27, 2025
155b7de
fix: currency daily updates and complete translations
Jun 27, 2025
8c74691
Complete 100% translation implementation
Jun 27, 2025
4ebf65d
Fix Spanish translation - add missing translation keys
Jun 27, 2025
f87d875
Complete all language translations - fix hardcoded translations
Jun 27, 2025
3d69e13
Final translation cleanup - 100% clean code achieved
Jun 27, 2025
d7b330f
Update documentation and commit settings - Final status update
Jun 27, 2025
3e74ac9
Fix Business Intelligence dashboard theme support
Jun 27, 2025
a54e600
Remove duplicate CurrencyRates interface definition
Jun 27, 2025
40fed69
Fix session count calculation to count unique sessions
Jun 27, 2025
f258b15
Fix Business Intelligence dashboard theme compatibility
Jun 27, 2025
3d61c33
Fix variable scope issue in CostCalculatorService switch statement
Jun 27, 2025
57e9123
Fix timestamp calculation order in UsageService timeSpanMs
Jun 27, 2025
d8e3303
Fix static context usage in CostCalculatorService
Jun 27, 2025
51b9991
Refactor CostCalculatorService from static class to module functions
Jun 27, 2025
edcf124
Move os module import to top-level in UsageService
Jun 27, 2025
1716de0
Add configurable monthly budget threshold for predictive analytics
Jun 27, 2025
9cf5835
Add configurable budget threshold parameter to calculatePredictiveAna…
Jun 27, 2025
912cef1
Implement proper Excel export using XLSX library
Jun 27, 2025
5c76dde
Enhance UsageDashboard tests with comprehensive behavior coverage
Jun 27, 2025
1ad84f2
Fix infinite loop in UsageDashboard component
Jun 27, 2025
5e8effd
Comprehensive code quality improvements and architecture cleanup
Jun 27, 2025
130c175
Fix all reported bugs from BUGS.md
Jun 27, 2025
b1b647d
Implement dynamic chart color system that adapts to current theme
Jun 27, 2025
b81dfb6
Complete theme variable conversion for UsageDashboard component styling
Jun 27, 2025
8686839
Complete hardcoded theme class replacement with CSS variables
Jun 27, 2025
62034b1
Remove legacy theme code and streamline design system
Jun 27, 2025
3c8300c
Reorganize settings UI with dropdown menus and fix modal close button
Jun 27, 2025
06aaa94
Fix medium priority code quality bugs for better maintainability
Jun 27, 2025
6280c65
Fix low priority code cleanup bugs for production readiness
Jun 27, 2025
0fe776f
Fix all 5 critical bugs with comprehensive solutions
Jun 27, 2025
ad13530
COMPLETE BUG ELIMINATION: 24/24 bugs resolved with 100% completion rate
Jun 27, 2025
e2a69b1
Add comprehensive GitHub Actions workflows for Mac/Linux builds and n…
Jun 28, 2025
c82a6bb
Fix critical build-breaking ESLint errors to restore production build
Jun 28, 2025
889442b
COMPLETE TEST SUITE RESTORATION: Fix all failing React component tests
Jun 28, 2025
0980109
Fix critical TypeScript ESLint errors in service files
Jun 28, 2025
1fd0878
MASSIVE ESLINT CLEANUP: 74% reduction in problems with comprehensive …
Jun 28, 2025
8b39110
Remove ARM64 Linux builds to avoid libdrm2-dev dependency issues
Jun 28, 2025
cdd227f
Fix ESLint configuration for test files to resolve GitHub Actions bui…
Jun 28, 2025
38e9b09
Fix ESLint issues in logger utility to resolve GitHub Actions CI fail…
Jun 28, 2025
836aee3
Replace lazy ESLint disable with targeted inline disables in logger
Jun 28, 2025
d6ce9dc
Fix ESLint issues in SettingsService: remove unnecessary async and co…
Jun 28, 2025
f189f10
Fix ESLint issues in SettingsModal: proper async handling and type sa…
Jun 28, 2025
42f9993
Fix ESLint issues in UsageDashboard: comprehensive code quality impro…
Jun 28, 2025
e976f28
Fix floating promise in App.tsx initialization
Jun 28, 2025
41e73d9
Fix infinite re-render in UsageDashboard by removing function depende…
Jun 28, 2025
dc56e12
Fix Linux build dependency: correct libdrm2-dev to libdrm-dev
Jun 28, 2025
14d5ec6
Fix comprehensive ESLint issues across codebase
Jun 28, 2025
710327e
Fix React testing issues in UsageDashboard
Jun 28, 2025
4ff32f9
Fix unused variable in BusinessIntelligenceDashboard
Jun 28, 2025
e7418ea
Fix electron-builder packaging configuration
Jun 28, 2025
6ee38fd
Fix electron-builder packaging configuration
Jun 28, 2025
d4bbfbc
Fix Linux build: Add author email for .deb package
Jun 28, 2025
93c07d9
Update author email to miwi@FreeBSD.org
Jun 28, 2025
805b8cf
Configure macOS build for unsigned distribution
Jun 28, 2025
03624c3
Add comprehensive solution for macOS distribution without Apple Devel…
Jun 28, 2025
ff9b9ec
Optimize build configuration for faster builds and simpler distribution
Jun 28, 2025
3425be0
Switch macOS distribution from ZIP to DMG format
Jun 28, 2025
3c2f0a4
Fix universal build issue by using separate x64/arm64 DMG builds
Jun 28, 2025
a96d77f
Fix universal build LICENSE conflict with singleArchFiles configuration
Jun 28, 2025
73d7416
Revert to separate architecture builds due to universal build issues
Jun 28, 2025
3455623
Fix universal build 'non-macho files' error with proper file exclusions
Jun 28, 2025
c49cedc
Fix universal build workflow mismatch and clean dist folder
Jun 28, 2025
cacd1e6
Fix massive build size by removing node_modules from packaging
Jun 28, 2025
8706508
Fix packaged app startup issue - correct HTML file path resolution
Jun 28, 2025
fb98806
Fix packaged app window visibility issue with comprehensive solutions
Jun 28, 2025
4a1550f
CRITICAL FIX: Resolve app crash with comprehensive error handling
Jun 28, 2025
c7b3adb
Fix critical packaged app data persistence and improve navigation UX
Jun 28, 2025
70cbbb7
Fix ESLint errors: promise executor return values and self-closing co…
Jun 28, 2025
9b7fbce
Improve CI/CD: separate Linux packages for better release management
Jun 28, 2025
b66e71a
Improve export UX with save dialogs and fix modal issues
Jun 28, 2025
97fa6bb
Fix critical cache token parsing and improve UI layout
Jun 28, 2025
3654ad8
Fix TypeScript exhaustiveness check in ExportService
Jun 28, 2025
0e008b4
Fix ESLint TypeScript strict mode violations
Jun 28, 2025
a7afeaf
Complete comprehensive ProjectDetailView with analytics and insights
Jun 28, 2025
16a7b05
Remove synthetic ($0.00) entries from data processing
Jun 28, 2025
45b6cbb
Complete internationalization for ProjectDetailView across all languages
Jun 28, 2025
8a3ef0a
Implement comprehensive accessibility improvements across core compon…
Jun 28, 2025
b4a6aeb
Clean up temporary export files
Jun 29, 2025
9833a53
Add comprehensive README.md documentation
Jun 29, 2025
34b08e1
CRITICAL: Clarify README for Claude Code CLI specificity and remove W…
Jun 29, 2025
d945064
Clarify CCTracker stands for Claude Code Tracker
Jun 29, 2025
8219a85
Implement system theme default and fix onboarding theme consistency
Jun 29, 2025
e21c157
Fix ESLint errors in ipcHandlers and BackupService
Jun 29, 2025
56fe653
Fix all critical issues reported in BUGS.md
Jun 29, 2025
93bf0c5
Fix language synchronization between settings and i18n system
Jun 29, 2025
79e65a8
Enhance Cost Over Time chart with detailed insights and add app icon
Jun 29, 2025
b24b9d0
Implement react-datepicker with full theme integration and comprehens…
Jun 29, 2025
be77e85
Fix UsageDashboard test after react-datepicker integration
Jun 29, 2025
ffab21e
Fix electron-builder macOS universal binary build error
Jun 29, 2025
7c58c19
PRE-RELEASE V1.0.0: README showcase + critical fixes
Jun 29, 2025
eb08813
V1.0.0 PRE-RELEASE AUDIT COMPLETE: All systems ready for production
Jun 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
189 changes: 189 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
# GitHub Actions Workflows

This repository includes comprehensive GitHub Actions workflows for automated building, testing, and releasing of CCTracker.

## 🔄 Workflows Overview

### 1. Build & Release (`build.yml`)
**Triggers:**
- Push to `main` branch (build only)
- Pull requests to `main` (build only)
- Scheduled nightly builds (2:00 AM UTC, main branch only)
- Manual dispatch with configurable options

**Features:**
- ✅ Multi-platform builds (macOS x64/ARM64, Linux x64)
- ✅ Automated testing and quality checks
- ✅ Nightly releases with automatic cleanup (keeps latest 7)
- ✅ Manual release triggers with version control
- ✅ Uses package.json version as base

### 2. Manual Build & Package (`manual-build.yml`)
**Purpose:** On-demand building with full control over targets and release options

**Triggers:**
- Manual dispatch only

**Options:**
- **Build Target:** Choose specific platforms or build all
- **Version Suffix:** Add custom suffix to version
- **Create Release:** Optionally create GitHub release
- **Draft Release:** Create as draft for review

## 🚀 How to Use

### Automatic Builds
1. **Push to main:** Automatic build without release
2. **Nightly:** Automatic build and release every night at 2:00 AM UTC
3. **Pull Request:** Build validation on PRs

### Manual Builds
1. Go to **Actions** tab in GitHub
2. Select **Build & Release** or **Manual Build & Package**
3. Click **Run workflow**
4. Configure options:
- Release type (nightly, manual, patch, minor, major)
- Build targets (all, mac-only, linux-only)
- Version settings
- Release preferences

### Release Types

#### Automatic Nightly (main branch only)
```
Version: 1.0.0-nightly.20240615
Trigger: Schedule (2:00 AM UTC)
Platforms: macOS (x64, ARM64), Linux (x64)
Release: Yes (prerelease)
Cleanup: Keeps latest 7 nightly releases
```

#### Manual Release
```
Version: 1.0.0-manual.202406151430
Trigger: Manual dispatch
Platforms: Configurable
Release: Optional
```

#### Semantic Release
```
Version: 1.0.0 (from package.json)
Trigger: Manual dispatch with patch/minor/major
Platforms: Configurable
Release: Yes (full release)
```

## 📦 Build Artifacts

Each successful build produces:

### macOS
- **DMG files:** `CCTracker-mac-{arch}.dmg`
- **ZIP archives:** `CCTracker-mac-{arch}.zip`
- **Architectures:** x64 (Intel), arm64 (Apple Silicon)

### Linux
- **AppImage:** `CCTracker-linux-x64.AppImage` (portable)
- **DEB packages:** `CCTracker-linux-x64.deb` (Debian/Ubuntu)
- **RPM packages:** `CCTracker-linux-x64.rpm` (RedHat/Fedora)
- **TAR.GZ archives:** `CCTracker-linux-x64.tar.gz`
- **Architecture:** x64 (Intel/AMD)

## 🔧 Configuration

### Package.json Scripts
The workflows use these npm scripts from package.json:
```json
{
"scripts": {
"build": "npm run build:main && npm run build:renderer",
"package:mac:x64": "electron-builder --mac --x64",
"package:mac:arm64": "electron-builder --mac --arm64",
"package:linux:x64": "electron-builder --linux --x64",
"package:linux:arm64": "electron-builder --linux --arm64",
"test": "jest",
"lint": "eslint . --ext .ts,.tsx,.js,.jsx",
"type-check": "tsc --noEmit"
}
}
```

### Environment Variables
Required for full functionality:
- `GITHUB_TOKEN`: Automatically provided
- `APPLE_ID`: For macOS code signing (optional)
- `APPLE_APP_SPECIFIC_PASSWORD`: For notarization (optional)
- `APPLE_TEAM_ID`: Apple Developer Team ID (optional)

### Electron Builder Configuration
The `build` section in package.json defines:
- Output directories
- Platform-specific settings
- Code signing configuration
- Package formats and targets

## 🔒 Security & Code Signing

### macOS
- **Hardened Runtime:** Enabled for security
- **Entitlements:** Configured for necessary permissions
- **Notarization:** Disabled by default (can be enabled with Apple credentials)
- **Gatekeeper:** Assessment disabled for development builds

### Linux
- **No code signing required**
- **AppImage:** Self-contained portable format
- **Package formats:** Standard DEB/RPM with dependencies

## 📊 Workflow Status

### Quality Checks
Each build includes:
- ✅ TypeScript compilation (`tsc --noEmit`)
- ✅ Unit tests (`npm test`)
- ✅ Code linting (`npm run lint`)
- ✅ Dependency installation
- ✅ Application build process

### Build Matrix
Parallel builds for efficiency:
- **macOS:** Intel (x64) + Apple Silicon (arm64)
- **Linux:** Intel/AMD (x64)

## 🗂️ File Structure
```
.github/workflows/
├── build.yml # Main build & release workflow
├── manual-build.yml # Manual build workflow
└── README.md # This documentation

build/
└── entitlements.mac.plist # macOS entitlements

package.json # Build scripts and electron-builder config
```

## 🚨 Troubleshooting

### Common Issues
1. **Build fails on dependencies:** Ensure all devDependencies are properly listed
2. **macOS signing errors:** Check Apple Developer credentials in secrets
3. **Linux missing libraries:** Workflow installs required system dependencies
4. **Version conflicts:** Manual builds append timestamps to avoid conflicts

### Debug Information
Workflows provide detailed logs including:
- Build configuration
- Version information
- Quality check results
- Artifact locations
- Release URLs (when created)

## 📝 Notes

- **Nightly builds:** Only run on main branch to prevent spam
- **Artifact retention:** 30 days for regular builds, 90 days for manual builds
- **Release cleanup:** Automatically removes old nightly releases (keeps 7)
- **Version control:** Uses package.json version as base, appends suffixes for builds
- **Platform support:** Currently Mac and Linux only (Windows can be added if needed)
Loading
Loading