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.dmg
LogViewer-{VERSION}-macOS-x86_64.dmg
windows_build.yml
- Builds Windows applications
LogViewer-{VERSION}.exe
LogViewer-{VERSION}-Setup.exe
rpm_build.yml
- Builds Linux RPM package
LogViewer-{VERSION}-0.rpm
flatpak_build.yml
- Builds Linux Flatpak package
LogViewer-{VERSION}.flatpak
The 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.0
Each 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.0
If 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.*\.exe
GitHub 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_Version
cd 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