This document outlines the process for creating releases of Log Viewer using the automated GitHub Actions workflows.
The Log Viewer project uses a comprehensive release process that builds artifacts for all platforms and creates a single, unified release. This process ensures all platform-specific builds are included and properly versioned.
When a version tag is pushed, these workflows automatically trigger:
macos_build_dual.yml - Builds macOS applications for both architectures
LogViewer-{VERSION}-macOS-arm64.dmgLogViewer-{VERSION}-macOS-x86_64.dmgwindows_build.yml - Builds Windows applications
LogViewer-{VERSION}.exeLogViewer-{VERSION}-Setup.exerpm_build.yml - Builds Linux RPM package
LogViewer-{VERSION}-0.rpmflatpak_build.yml - Builds Linux Flatpak package
LogViewer-{VERSION}.flatpakThe release_on_tag.yml workflow automatically creates releases when tags are pushed:
v3.2.0)The manual_comprehensive_release.yml workflow creates a unified draft release with all artifacts when triggered manually.
Update the version in the central version file:
# Update to new version (e.g., 3.2.0)
echo "VERSION=3.2.0" > rpmbuild/SOURCES/Build_Version
# Commit the version change
git add rpmbuild/SOURCES/Build_Version
git commit -m "Bump version to 3.2.0"
git push origin main
# Create the version tag
git tag v3.2.0
# Push the tag to trigger builds and automated release
git push origin v3.2.0
When you push a tag, the automated workflow handles everything:
No manual intervention required! Just monitor the Actions tab for completion.
If you prefer manual control or the automated process fails:
v3.2.0Each release includes exactly 6 artifacts:
| Platform | File | Description |
|---|---|---|
| macOS (Apple Silicon) | LogViewer-{VERSION}-macOS-arm64.dmg |
Native M1/M2/M3 Mac app |
| macOS (Intel) | LogViewer-{VERSION}-macOS-x86_64.dmg |
Native Intel Mac app |
| Windows (Installer) | LogViewer-{VERSION}-Setup.exe |
Windows installer package |
| Windows (Portable) | LogViewer-{VERSION}.exe |
Standalone Windows executable |
| Linux (RPM) | LogViewer-{VERSION}-0.rpm |
Red Hat/Fedora package |
| Linux (Flatpak) | LogViewer-{VERSION}.flatpak |
Universal Linux package |
All builds use the version from rpmbuild/SOURCES/Build_Version:
VERSION=3.2.0
The build processes automatically update:
update_rpm_version.sh)update_inno_version.py)generate_version_info.py)All artifacts follow the pattern: LogViewer-{VERSION}-{PLATFORM}.{EXT}
If any platform build fails:
git tag -d v3.2.0 && git push origin :refs/tags/v3.2.0If you encounter version mismatch errors (e.g., “Source file LogViewer-X.X.X.exe does not exist”):
Windows Installer Version Mismatch (RESOLVED):
This critical error was caused by a version mismatch where the Build_Version file contained version 3.3.0 but the Inno Setup installer script was still expecting version 3.2.0. This has been permanently fixed by:
update_inno_version.py call to before PyInstaller in the GitHub Actions workflowLogViewer.*\.exeGitHub Actions Workflow Fix (RESOLVED):
Fixed YAML syntax error in automated_comprehensive_release.yml that was causing workflow validation failures:
This error was caused by a timing issue in the GitHub Actions Windows build workflow where update_inno_version.py was called after PyInstaller instead of before. This has been fixed by:
update_inno_version.py call to before PyInstaller in the workflowgenerate_version_info.py call in the correct sequencerpmbuild/SOURCES/Build_Versioncd rpmbuild/SOURCES
python3 update_inno_version.py # Updates Windows installer script
python3 generate_version_info.py # Updates Windows version info
./update_rpm_version.sh # Updates RPM spec file
If artifacts are missing from a workflow:
If there are issues with the release:
Build_Version matches the tagFor issues with the release process:
Organization: Michette Technologies
Project: Log Viewer
Last Updated: 2024