Skip to content

Add Ubuntu packaging and automated tag-based release pipeline#95

Open
sebastianelsner wants to merge 3 commits intosoyersoyer:mainfrom
sebastianelsner:upstream/packaging-release
Open

Add Ubuntu packaging and automated tag-based release pipeline#95
sebastianelsner wants to merge 3 commits intosoyersoyer:mainfrom
sebastianelsner:upstream/packaging-release

Conversation

@sebastianelsner
Copy link
Copy Markdown

Summary

This PR adds Ubuntu/Debian packaging, desktop integration, and a complete release pipeline that publishes installable assets on vX.Y.Z tags.

Packaging added

  • New Debian packaging under debian/ for all apps:
    • cameractrls (CLI + daemon + viewer + PTZ helper tools)
    • cameractrls-gtk (GTK3 launcher package)
    • cameractrls-gtk4 (GTK4 launcher package)
  • Desktop integration:
    • launchers in /usr/share/applications
    • icon in /usr/share/icons/hicolor/scalable/apps
    • AppStream metainfo in /usr/share/metainfo
  • Ubuntu dependency compatibility improved:
    • libturbojpeg0 | libturbojpeg

Build automation added

  • Makefile target:
    • make deb builds .deb packages and places artifacts in dist/deb/

CI/CD release workflow added

  • New workflow: .github/workflows/release-packages.yml
  • Triggered on tags matching v*.*.*
  • Steps:
    • validate tag format and tag/version consistency
    • build .deb packages
    • upload workflow artifacts
    • publish GitHub Release assets (.deb, .changes, .buildinfo)
    • add a source archive asset (cameractrls-vX.Y.Z-source.zip)
  • Includes workflow_dispatch and a safety gate so actual release publishing occurs only for tags whose commit is on the default branch.

Documentation updates

  • README updated with Ubuntu install instructions from GitHub Releases.
  • Added PACKAGING-UBUNTU.md for local package build/install instructions.

How to make a release (maintainer flow)

  1. Ensure debian/changelog top entry version matches the intended release tag (e.g. 0.6.11-1 for v0.6.11).
  2. Merge release-ready changes to main.
  3. Create and push a semantic tag on main:
    git tag vX.Y.Z
    git push origin vX.Y.Z
  4. GitHub Actions will automatically build and publish release assets.
  5. Verify release page contains:
    • cameractrls_..._all.deb
    • cameractrls-gtk_..._all.deb
    • cameractrls-gtk4_..._all.deb
    • .changes and .buildinfo
    • cameractrls-vX.Y.Z-source.zip

Validation performed

  • Built packages locally with make deb and dpkg-buildpackage.
  • Verified desktop/appstream metadata validation.
  • Executed a full end-to-end GitHub release dry run in fork and verified published assets.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant