GitHub Actions Build System
This project uses GitHub Actions for automated building and releasing across multiple platforms.
Available Workflows
1. CI Build (ci.yml)
Trigger: Push to main/master branches, pull requests Purpose: Quick validation builds on all platforms Artifacts: Platform-specific executables
2. Build Qt (build.yml)
Trigger: Push to main/master branches, pull requests, manual dispatch Purpose: Comprehensive builds using both qmake and CMake Artifacts:
- qmake builds for each platform
- CMake builds for each platform
3. Release (release.yml)
Trigger: Git tags (v*), manual dispatch Purpose: Create official releases with distributable packages Artifacts:
- macOS: DMG installer
- Windows: ZIP package with dependencies
- Linux: TAR.GZ package
Usage
Automatic Builds
Every push to main/master branches triggers CI builds to ensure code quality.
Creating a Release
-
Create and push a version tag:
git tag v1.0.0 git push origin v1.0.0 -
The release workflow will automatically:
- Build for all platforms
- Create distributable packages
- Create a GitHub release with artifacts
Manual Release
- Go to Actions tab in GitHub
- Select "Build and Release Clouck"
- Click "Run workflow"
- Enter version number (e.g., v1.0.0)
- Click "Run workflow"
Build Requirements
macOS
- Qt 6.5.0
- Xcode Command Line Tools
- macdeployqt for app bundling
Windows
- Qt 6.5.0
- Visual Studio Build Tools or MinGW
- windeployqt for dependency deployment
Linux
- Qt 6.5.0
- GCC/Clang
- X11 development libraries
- XFixes development libraries
Artifacts
Each workflow produces platform-specific artifacts:
- macOS:
.appbundle or.dmginstaller - Windows: Executable with Qt dependencies
- Linux: Executable with shared libraries
Configuration
The workflows use:
jurplel/install-qt-action@v4for Qt installation- Matrix builds for multi-platform support
- Artifact upload for build retention
- Automatic release creation for tagged builds
Troubleshooting
Build Failures
- Check Qt version compatibility
- Verify platform-specific dependencies
- Review build logs in GitHub Actions
Missing Dependencies
- Ensure all required Qt modules are specified
- Check platform-specific library installations
- Verify CMake/qmake configuration
Release Issues
- Ensure proper version tagging format (v*)
- Check GitHub token permissions
- Verify artifact upload paths