This directory contains comprehensive GitHub Actions workflows for the Manic Miners Launcher project, ensuring quality, compatibility, and reliability across multiple platforms.
Triggers: Push to master/main/develop, Pull Requests
- Multi-platform testing on Ubuntu, Windows, and macOS
- TypeScript compilation validation
- ESLint code quality checks
- Asset generation testing
- Test suite execution with comprehensive coverage
- Electron packaging verification
- Security auditing with dependency analysis
- Performance monitoring and bundle analysis
- Artifact generation for distributables
Triggers: Git tags (v*), GitHub releases
- Production builds for all platforms
- Signed installers (where applicable)
- Release artifact generation and upload
- GitHub Release attachment automation
- Platform-specific packaging:
- Linux: .deb and .rpm packages
- Windows: .exe installers and .zip archives
- macOS: .dmg images and .zip archives
Triggers: Pull request events
- Comprehensive validation on all platforms
- Code quality analysis with security scanning
- Compatibility testing across Node.js versions
- Build verification before merge
- Automatic PR summary generation
- License compliance checking
- Bundle size analysis for performance impact
Triggers: Daily at 2 AM UTC, Manual dispatch
- Extended testing across multiple Node.js versions
- Deep security auditing with vulnerability scanning
- Performance analysis and optimization insights
- Code quality metrics and complexity analysis
- Dependency freshness monitoring
- Regression testing for stability assurance
- Ubuntu Latest (Linux)
- Windows Latest
- macOS Latest
- Node.js 18.x (LTS)
- Node.js 20.x (Current LTS) - Primary
- Node.js 22.x (Latest)
- β TypeScript compilation validation
- β ESLint code quality checks
- β Prettier formatting verification
- β Comprehensive test suite execution
- β Security vulnerability scanning
- β License compliance checking
- β Asset generation testing
- β Electron packaging validation
- β Cross-platform build testing
- β Performance impact analysis
- β Bundle size monitoring
- β Dependency audit (moderate+ severity)
- β License compatibility checking
- β Vulnerability scanning
- β Outdated dependency monitoring
- β Code security analysis
- β Bundle size analysis
- β Build performance tracking
- β Asset optimization verification
- β Startup performance checks
- Test coverage reports
- Lint and compilation results
- Platform-specific packages
- Performance metrics
- Production-ready installers
- Cross-platform distributables
- Signed applications (where applicable)
- Release notes and changelogs
- Validation summary reports
- Code quality metrics
- Compatibility test results
- Performance impact analysis
- Extended test reports
- Security audit results
- Performance benchmarks
- Code quality trends
# Install dependencies
pnpm install
# Run linting
pnpm run lint
# Run TypeScript compilation check
npx tsc --noEmit
# Generate assets
pnpm run generate:assets
# Run test suite
node test-runner.js
# Test packaging
pnpm run package
# Full build (Linux only)
pnpm run make
# Set CI environment variable
export CI=true
# Run with frozen lockfile (like CI)
pnpm install --frozen-lockfile
# Test with production-like settings
pnpm run package
GITHUB_TOKEN
- Automatically provided by GitHub
Ubuntu:
sudo apt-get install -y libnss3-dev libatk-bridge2.0-dev libxss1 libgtk-3-dev libxrandr2 libasound2-dev rpm fakeroot
Windows:
- No additional system dependencies required
macOS:
- Xcode Command Line Tools (automatically available)
Add these badges to your main README.md:
[](https://github.com/username/manic-miners-launcher/actions/workflows/ci.yml)
[](https://github.com/username/manic-miners-launcher/actions/workflows/release.yml)
[](https://github.com/username/manic-miners-launcher/actions/workflows/nightly.yml)
-
TypeScript Compilation Errors
- Check
tsconfig.json
configuration - Verify all TypeScript files are properly typed
- Run
npx tsc --noEmit
locally
- Check
-
Package Installation Failures
- Ensure
pnpm-lock.yaml
is committed - Check Node.js version compatibility
- Verify system dependencies on Linux
- Ensure
-
Build Failures
- Check Electron Forge configuration
- Verify asset generation completes successfully
- Ensure all required dependencies are installed
-
Test Failures
- Run tests locally with
node test-runner.js
- Check test environment setup
- Verify mock configurations are correct
- Run tests locally with
- Check the Actions tab in your GitHub repository
- Review workflow run logs for detailed error information
- Ensure all required files are committed and up to date
- Verify configuration files are properly formatted
The workflows are designed to:
- Catch issues early in the development process
- Ensure quality across all supported platforms
- Maintain security through regular audits
- Monitor performance and prevent regressions
- Automate releases for consistent distribution
Regular updates and improvements to these workflows help maintain a robust development and deployment pipeline.