Skip to content

build: add Debian package release workflow - #1

Merged
Jelloeater merged 2 commits into
mainfrom
claude/create-gh-deb-release-workflow
Jun 7, 2026
Merged

build: add Debian package release workflow#1
Jelloeater merged 2 commits into
mainfrom
claude/create-gh-deb-release-workflow

Conversation

@Claude

@Claude Claude AI commented Jun 7, 2026

Copy link
Copy Markdown

Implements Debian package builds in CI based on PR vicinaehq#1230. Adds automated .deb generation on release tags alongside existing AppImage and binary artifacts.

Changes

  • nfpm.yaml: Package manifest defining dependencies (Qt6, layer-shell-qt, protobuf, etc.), file paths, and metadata
  • scripts/mkdeb.sh: Build script wrapping nfpm with validation for VERSION, BUILD_DIR, and INSTALL_DIR
  • .github/workflows/release.yml: New build-deb job that installs nfpm, builds with -DVICINAE_PROVENANCE=deb, packages, and uploads to releases

Notes

Targets Ubuntu 24.04+ due to Qt6 and modern dependency requirements. Older distros should use AppImage. Runner uses same [self-hosted, Linux, X64, appimage] configuration as AppImage build.

- Add nfpm.yaml configuration for Debian package metadata
- Create mkdeb.sh script for building .deb packages
- Add build-deb job to release workflow
- Job uses nfpm to create Debian packages and upload to releases

Agent-Logs-Url: https://github.com/Jelloeater/vicinae/sessions/7a2a5c11-4141-4b66-83eb-d87ea17aa118

Co-authored-by: Jelloeater <7862369+Jelloeater@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds automated Debian package generation to the release CI so that .deb artifacts are built and uploaded to GitHub Releases alongside existing release artifacts.

Changes:

  • Add nfpm.yaml defining Debian package metadata, dependencies, and installed file mappings.
  • Add scripts/mkdeb.sh to validate inputs and run nfpm to produce a .deb.
  • Extend .github/workflows/release.yml with a build-deb job that installs nfpm, builds/installs via CMake, packages, and uploads *.deb to the release.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 7 comments.

File Description
scripts/mkdeb.sh New packaging helper script that validates environment and runs nfpm.
nfpm.yaml New nfpm manifest describing Debian package metadata and file install destinations.
.github/workflows/release.yml Adds build-deb job to build and publish Debian packages on release tags.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/mkdeb.sh Outdated
exit 1
fi

VERSION="${VERSION/v/}"
Comment thread scripts/mkdeb.sh Outdated
Comment on lines +15 to +25
BUILD_DIR="$(pwd)/build"
INSTALL_DIR="$(pwd)/install"
if [[ ! -e "$INSTALL_DIR" ]]; then
echo "Error: INSTALL_DIR \"$INSTALL_DIR\" could not be found" \
"(was vicinae built?)" >&2
exit 1
elif [[ ! -d "$BUILD_DIR" ]]; then
echo "Error: BUILD_DIR \"$BUILD_DIR\" could not be found" \
"(was vicinae built?)" >&2
exit 1
fi
Comment thread nfpm.yaml Outdated
Comment on lines +2 to +3
arch: ${GOARCH}
platform: ${GOOS}
Comment thread nfpm.yaml Outdated
Comment on lines +29 to +30
- src: extra/vicinae.service
dst: /etc/systemd/system/vicinae.service
Comment thread nfpm.yaml Outdated
Comment on lines +33 to +34
- src: extra/udev/rules.d/70-vicinae.rules
dst: /lib/udev/rules.d/70-vicinae.rules
Comment thread nfpm.yaml Outdated
Comment on lines +35 to +36
- src: extra/modules-load.d/vicinae.conf
dst: /lib/modules-load.d/70-vicinae.rules
Comment thread .github/workflows/release.yml Outdated
Comment on lines +166 to +168
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list
sudo apt-get update -y
sudo apt-get install nfpm
Copilot AI requested a review from Jelloeater June 7, 2026 07:50
@Jelloeater
Jelloeater marked this pull request as ready for review June 7, 2026 18:59
@Jelloeater
Jelloeater merged commit 7929b50 into main Jun 7, 2026
@Jelloeater
Jelloeater deleted the claude/create-gh-deb-release-workflow branch June 7, 2026 18:59
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.

4 participants