Skip to content

Commit

Permalink
Add makedeb workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
xiota committed Apr 15, 2024
1 parent 38caf41 commit fffc62a
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 95 deletions.
95 changes: 0 additions & 95 deletions .github/workflows/build-deb.yml

This file was deleted.

75 changes: 75 additions & 0 deletions .github/workflows/makedeb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
name: build-deb

on:
workflow_dispatch:

# cancel already running builds of the same branch or pull request
concurrency:
group: ci-${{ github.head_ref }} || concat(${{ github.ref }}
cancel-in-progress: true

env:
CONFIGURE_FLAGS: --disable-silent-rules --prefix=/usr

jobs:
linux:
name: Linux Build
runs-on: ubuntu-22.04
strategy:
fail-fast: false
steps:
- name: Checkout source
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Install Dependencies
run: |
echo "Running apt update..."
sudo apt update
sudo apt dist-upgrade
echo "Installing dependencies with apt..."
DEBIAN_FRONTEND=noninteractive sudo apt install -y alsa-topology-conf alsa-ucm-conf aspell aspell-en at-spi2-core bubblewrap dbus-user-session dconf-gsettings-backend dconf-service dictionaries-common dmsetup emacsen-common enchant-2 fuse3 geany geany-common gettext gir1.2-atk-1.0 gir1.2-atspi-2.0 gir1.2-dazzle-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gtk-3.0 gir1.2-harfbuzz-0.0 gir1.2-javascriptcoregtk-4.1 gir1.2-json-1.0 gir1.2-pango-1.0 gir1.2-polkit-1.0 gir1.2-soup-3.0 gir1.2-webkit2-4.1 glib-networking glib-networking-common glib-networking-services gsettings-desktop-schemas gstreamer1.0-gl gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-x hunspell-en-us icu-devtools libaa1 libarchive-tools libargon2-1 libasound2 libasound2-data libaspell15 libasyncns0 libatk-bridge2.0-0 libatk-bridge2.0-dev libatk1.0-dev libatspi2.0-0 libatspi2.0-dev libavc1394-0 libblkid-dev libboost-dev libboost1.74-dev libbrotli-dev libcaca0 libcairo-script-interpreter2 libcairo2-dev libcanberra0 libcdparanoia0 libcmark-gfm-dev libcmark-gfm-extensions-dev libcmark-gfm-extensions0.29.0.gfm.3 libcmark-gfm0.29.0.gfm.3 libcolord2 libcryptsetup12 libdatrie-dev libdazzle-1.0-0 libdazzle-1.0-dev libdazzle-common libdbus-1-dev libdconf1 libdeflate-dev libdevmapper1.02.1 libdv4 libegl-dev libegl-mesa0 libegl1 libegl1-mesa-dev libenchant-2-2 libepoxy-dev libepoxy0 libevdev2 libexpat1-dev libffi-dev libflac8 libfontconfig-dev libfontconfig1-dev libfreetype-dev libfreetype6-dev libfribidi-dev libfuse3-3 libgdk-pixbuf-2.0-dev libgirepository-1.0-1 libgl-dev libgles-dev libgles1 libgles2 libglib2.0-bin libglib2.0-dev libglib2.0-dev-bin libglvnd-core-dev libglvnd-dev libglx-dev libgraphene-1.0-0 libgraphite2-dev libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-0 libgstreamer-plugins-good1.0-0 libgstreamer1.0-0 libgtk-3-0 libgtk-3-bin libgtk-3-common libgtk-3-dev libgudev-1.0-0 libharfbuzz-dev libharfbuzz-gobject0 libharfbuzz-icu0 libhunspell-1.7-0 libhyphen0 libice-dev libice6 libicu-dev libidn12 libiec61883-0 libip4tc2 libjack-jackd2-0 libjavascriptcoregtk-4.1-0 libjavascriptcoregtk-4.1-dev libjbig-dev libjpeg-dev libjpeg-turbo8-dev libjpeg8-dev libjson-glib-1.0-0 libjson-glib-1.0-common libjson-glib-dev libkmod2 liblcms2-2 liblzma-dev libmanette-0.2-0 libmount-dev libmp3lame0 libmpg123-0 libnghttp2-dev libnss-systemd libogg0 libopengl-dev libopengl0 libopenjp2-7 libopus0 liborc-0.4-0 libpam-systemd libpango1.0-dev libpangoxft-1.0-0 libpcre16-3 libpcre2-16-0 libpcre2-32-0 libpcre2-dev libpcre2-posix3 libpcre3-dev libpcre32-3 libpcrecpp0v5 libpipewire-0.3-0 libpipewire-0.3-common libpipewire-0.3-modules libpixman-1-dev libpng-dev libpng-tools libpodofo-dev libpodofo0.9.7 libpolkit-agent-1-0 libpolkit-gobject-1-0 libpolkit-gobject-1-dev libproxy1v5 libpsl-dev libpthread-stubs0-dev libpulse0 libraw1394-11 libsamplerate0 libsecret-1-0 libsecret-common libselinux1-dev libsepol-dev libshout3 libslang2 libsm-dev libsm6 libsndfile1 libsoup-3.0-0 libsoup-3.0-common libsoup-3.0-dev libsoup2.4-1 libsoup2.4-common libspa-0.2-modules libspeex1 libsqlite3-dev libssl-dev libsysprof-4 libsysprof-4-dev libsysprof-ui-4 libtag1v5 libtag1v5-vanilla libtdb1 libtext-iconv-perl libthai-dev libtheora0 libtiff-dev libtiffxx5 libtwolame0 libv4l-0 libv4lconvert0 libvisual-0.4-0 libvorbis0a libvorbisenc2 libvorbisfile3 libvpx7 libwavpack1 libwayland-bin libwayland-cursor0 libwayland-dev libwayland-egl1 libwebkit2gtk-4.1-0 libwebkit2gtk-4.1-dev libwebpdemux2 libwebrtc-audio-processing1 libwoff1 libwpe-1.0-1 libwpebackend-fdo-1.0-1 libx11-dev libxau-dev libxcb-render0-dev libxcb-shm0-dev libxcb1-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp-dev libxext-dev libxfixes-dev libxft-dev libxft2 libxi-dev libxinerama-dev libxkbcommon-dev libxkbcommon0 libxrandr-dev libxrender-dev libxslt1.1 libxtst-dev libxtst6 libxv1 meson networkd-dispatcher pango1.0-tools pipewire pipewire-bin pipewire-media-session pkexec pkg-config policykit-1 polkitd python3-dbus python3-gi rtkit session-migration sound-theme-freedesktop systemd systemd-sysv systemd-timesyncd uuid-dev wayland-protocols x11-common x11proto-dev xdg-dbus-proxy xdg-desktop-portal xdg-desktop-portal-gtk xkb-data xorg-sgml-doctools xtrans-dev zlib1g-dev zstd
- name: Install makedeb
run: |
echo "Installing makedeb..."
curl -Ss -qgb "" -fLC - --retry 3 --retry-delay 3 -o makedeb.deb \
"https://github.com/makedeb/makedeb/releases/download/v16.1.0-beta1/makedeb-beta_16.1.0-beta1_amd64_focal.deb"
DEBIAN_FRONTEND=noninteractive sudo dpkg -i makedeb.deb
- name: Build deb package
working-directory: tools
run: |
echo "Building deb package..."
_pkgver=$(git describe --long --tags --abbrev=7 --exclude='*[a-zA-Z][a-zA-Z]*' \
| sed -E 's/^[^0-9]*//;s/([^-]*-g)/r\1/;s/-/./g')
sed -E -e 's/^\s*pkgver=.*$/pkgver='"${_pkgver}"'/' -i PKGBUILD.debian
DEBIAN_FRONTEND=noninteractive makedeb -si --no-color --no-confirm --pass-env -p PKGBUILD.debian
ARTIFACT_NAME="$(ls -1 geany-plugin-preview*.deb | sort -rV | head -1)"
echo "Artifact name is '$ARTIFACT_NAME'."
echo "Recording artifact name."
echo "ARTIFACT_NAME=$ARTIFACT_NAME" >> $GITHUB_ENV
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{env.ARTIFACT_NAME}}
path: ${{github.workspace}}/tools/${{env.ARTIFACT_NAME}}

- name: Prepare for publishing
if: ${{github.ref_type == 'tag' || github.ref_name == 'main'}}
run: |
echo "Setting publish name."
PUBLISH_NAME="GeanyPreview_${REF_NAME_FILTERED}_${{matrix.build_type}}"
echo "Publish name is '$PUBLISH_NAME'."
echo "Recording publish name."
echo "PUBLISH_NAME=$PUBLISH_NAME" >> $GITHUB_ENV
- name: Publish artifacts
uses: softprops/action-gh-release@v1
if: ${{github.ref_type == 'tag' || github.ref_name == 'dev'}}
with:
tag_name: test-actions
files: |
${{env.ARTIFACT_NAME}}.AppImage
75 changes: 75 additions & 0 deletions tools/PKGBUILD.debian
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Maintainer: xiota

## options
: ${_branch:=main}

## basic info
_pkgname='geany-plugin-preview'
pkgname="$_pkgname-git"
pkgdesc="Geany plugin to preview lightweight markup languages"
url="https://github.com/xiota/geany-preview"
pkgver=0.0.0
pkgrel=1
license=('GPL-3.0-or-later')
arch=('amd64')

depends=(
geany
libcmark-gfm-extensions0.29.0.gfm.3
libcmark-gfm0.29.0.gfm.3
libpodofo0.9.7
libwebkit2gtk-4.1-0
)
makedepends=(
git
meson
libcmark-gfm-dev
libcmark-gfm-extensions-dev
libglib2.0-dev
libgtk-3-dev
libpodofo-dev
libwebkit2gtk-4.1-dev
)
optdepends=(
'asciidoc: Preview AsciiDoc'
'asciidoctor: Preview AsciiDoc'
'pandoc: Preview many other file formats'

# AUR
'fonts-courier-prime: Export Fountain screenplays to PDF'
)

provides+=("$_pkgname")
conflicts+=("$_pkgname")

_pkgsrc="geany-preview"
source=("$_pkgsrc"::"git+$url.git#branch=$_branch")
sha256sums=('SKIP')

prepare() {
cd "$_pkgsrc"
ln -s meson.options meson_options.txt
}

build() {
cd "$_pkgsrc"
meson rewrite kwargs set project / version "$pkgver"

local _meson_args=(
--buildtype=plain
--prefix=/usr
--libexecdir=lib
--sbindir=bin
--auto-features=enabled
--wrap-mode=nodownload
-Dwarning_level=everything
)

meson "${_meson_args}" ../build
meson compile --verbose -C ../build
}

package() {
meson install -C build --destdir "$pkgdir"
chmod -R u+rwX,go+rX,go-w "$pkgdir/"
}

0 comments on commit fffc62a

Please sign in to comment.