44b69d99e9
Updated CI/CD documentation and workflow to generate only ZIP portable versions for Windows, removing MSI installer support. Deleted setup.py and setup-ffmpeg.py scripts for MSI builds, and refactored workflow to use cx_Freeze CLI for ZIP packaging. Documentation and artifact instructions now reflect ZIP-only distribution.
3.3 KiB
3.3 KiB
YTSage CI/CD Workflow
This repository uses GitHub Actions to automatically build and release YTSage for Windows when version tags are pushed.
How It Works
Trigger
The workflow is triggered when you push a git tag that starts with v (e.g., v4.8.0, v4.9.1).
Build Process
- Setup: Uses Python 3.12.10 on Windows
- Builds: Creates both Standard and FFmpeg versions
- Packages: Generates ZIP portable versions only (no MSI)
- Release: Creates a draft GitHub release with all artifacts
Usage
Creating a Release
-
Update version in your source code if needed
-
Commit your changes:
git add . git commit -m "Release v4.8.0" -
Create and push a tag:
git tag v4.8.0 git push origin v4.8.0 -
Watch the action: Go to Actions tab in GitHub to monitor progress
-
Review draft release: Once complete, check the Releases section for the draft
Release Artifacts
The workflow creates the following files:
YTSage-v<version>.zip- Standard portable versionYTSage-v<version>-ffmpeg.zip- FFmpeg bundle portable
Release Notes
Automatic release notes are generated including:
- Download links and descriptions
- Installation instructions
- System requirements
- Feature highlights
Workflow Features
Automatic Version Detection
- Extracts version from git tag (removes 'v' prefix)
- Names all artifacts consistently (ZIPs)
Caching
- Python dependencies are cached to speed up builds
- Virtual environment is cached between runs
Error Handling
- Comprehensive error checking at each step
- Detailed logging for troubleshooting
- Artifact verification before upload
Security
- Uses official GitHub Actions
- No external dependencies
- Secure token handling
Manual Intervention
After Workflow Completion
- Review the draft release in GitHub
- Test the artifacts if needed
- Edit release notes if desired
- Publish the release when ready
Troubleshooting
If the workflow fails:
- Check the Actions logs for error details
- Ensure all required files are present
- Verify the tag format is correct (
v*) - Check that dependencies are properly listed
Configuration
Modifying the Workflow
The workflow file is located at .github/workflows/build-windows.yml.
Key configuration options:
PYTHON_VERSION: Python version to use- Artifact naming patterns
- Release note templates
Adding New Build Types
To add new platform packages (e.g., .dmg for macOS, .deb for Linux):
- Add separate jobs in
.github/workflows/build-windows.yml(or a new workflow) targeting the OS (macos-latest, ubuntu-latest). - Build the executable with cx_Freeze or PyInstaller for that platform.
- Package the build output (e.g., create DMG on macOS, DEB on Ubuntu) using platform tools.
- Upload the artifacts and include them in the release.
Notes
- The workflow only runs on Windows
- All builds use cx_Freeze for packaging
- FFmpeg binaries are expected in standard locations
- Draft releases allow for review before publication
Example Tag Commands
# For a new release
git tag v4.8.0
git push origin v4.8.0
# For a patch release
git tag v4.8.1
git push origin v4.8.1
# To delete a tag (if needed)
git tag -d v4.8.0
git push origin :refs/tags/v4.8.0