Skip to content

Commit 6e9ef02

Browse files
committed
trying to fix debian deployment. Create temporary debian/control and changelog, added extra guards
1 parent edc9667 commit 6e9ef02

1 file changed

Lines changed: 54 additions & 12 deletions

File tree

.github/workflows/build-release-artifacts.yml

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,13 @@ jobs:
411411
deb_upstream_version="${VERSION/-rc./~rc.}"
412412
deb_revision="${DEB_REVISION}"
413413
deb_version="${deb_upstream_version}-${deb_revision}"
414-
pkg_root="dist/deb-root"
414+
if [[ -e debian ]]; then
415+
echo "::error title=Unexpected debian directory::The release workflow expects no repository debian/ directory."
416+
exit 1
417+
fi
418+
419+
trap 'rm -rf debian' EXIT
420+
pkg_root="debian/gitcomet"
415421
mkdir -p "${pkg_root}/DEBIAN"
416422
mkdir -p "${pkg_root}/usr/bin"
417423
mkdir -p "${pkg_root}/usr/share/applications"
@@ -421,24 +427,60 @@ jobs:
421427
install -m644 dist/gitcomet.desktop "${pkg_root}/usr/share/applications/gitcomet.desktop"
422428
install -m644 assets/gitcomet-512.png "${pkg_root}/usr/share/icons/hicolor/512x512/apps/gitcomet.png"
423429
424-
shlib_depends="$(dpkg-shlibdeps -O "${pkg_root}/usr/bin/gitcomet" | sed -n 's/^shlibs:Depends=//p')"
425-
depends="git"
426-
if [[ -n "${shlib_depends}" ]]; then
427-
depends="${depends}, ${shlib_depends}"
428-
fi
429-
430430
{
431+
echo "Source: gitcomet"
432+
echo "Maintainer: AutoExplore Oy <info@autoexplore.ai>"
433+
echo "Section: utils"
434+
echo "Priority: optional"
435+
echo "Standards-Version: 4.7.0"
436+
echo
431437
echo "Package: gitcomet"
432-
echo "Version: ${deb_version}"
433438
echo "Architecture: ${DEB_ARCH}"
434-
echo "Maintainer: AutoExplore Oy <info@autoexplore.ai>"
435-
echo "Depends: ${depends}"
439+
echo "Depends: git, \${shlibs:Depends}"
436440
echo "Section: utils"
437441
echo "Priority: optional"
438442
echo "Description: Fast, resource-efficient Git GUI written in Rust."
439-
} > "${pkg_root}/DEBIAN/control"
443+
} > debian/control
440444
441-
dpkg-deb --build "${pkg_root}" "dist/gitcomet_${deb_version}_${DEB_ARCH}.deb"
445+
{
446+
echo "gitcomet (${deb_version}) unstable; urgency=medium"
447+
echo
448+
echo " * Release ${VERSION}."
449+
echo
450+
echo " -- AutoExplore Oy <info@autoexplore.ai> $(date -Ru)"
451+
} > debian/changelog
452+
453+
dpkg-shlibdeps -Tdebian/substvars "${pkg_root}/usr/bin/gitcomet"
454+
dpkg-gencontrol -pgitcomet -P"${pkg_root}" -Tdebian/substvars
455+
456+
pkg_file="dist/gitcomet_${deb_version}_${DEB_ARCH}.deb"
457+
dpkg-deb --build "${pkg_root}" "${pkg_file}"
458+
459+
package_name="$(dpkg-deb -f "${pkg_file}" Package)"
460+
package_version="$(dpkg-deb -f "${pkg_file}" Version)"
461+
package_architecture="$(dpkg-deb -f "${pkg_file}" Architecture)"
462+
package_depends="$(dpkg-deb -f "${pkg_file}" Depends)"
463+
464+
if [[ "${package_name}" != "gitcomet" ]]; then
465+
echo "::error title=Unexpected package name::Got ${package_name}."
466+
exit 1
467+
fi
468+
if [[ "${package_version}" != "${deb_version}" ]]; then
469+
echo "::error title=Unexpected package version::Got ${package_version}, expected ${deb_version}."
470+
exit 1
471+
fi
472+
if [[ "${package_architecture}" != "${DEB_ARCH}" ]]; then
473+
echo "::error title=Unexpected package architecture::Got ${package_architecture}, expected ${DEB_ARCH}."
474+
exit 1
475+
fi
476+
if ! grep -Eq '(^|, )git($|, )' <<<"${package_depends}"; then
477+
echo "::error title=Missing git dependency::Got ${package_depends}."
478+
exit 1
479+
fi
480+
if [[ "${package_depends}" == "git" ]]; then
481+
echo "::error title=Missing shared library dependencies::Got ${package_depends}."
482+
exit 1
483+
fi
442484
443485
- name: Package AppImage
444486
if: ${{ matrix.build_appimage }}

0 commit comments

Comments
 (0)