build-deb #28
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |