CI workflow to pack a binary tarball and save it with the [upload-artifact](https://github.com/actions/upload-artifact) action.
The problem with this is "for what system"? All the Linuxes have their own quirks, and most distros have their own patches for Geany to meet their requirements. Somewhat ironically Windows and Macos are more consistent, although (IIUC) both have occasional forward/backward compatibility lapses and are somewhat harder to build for.
Making a source tarball is more likely portable, but its not really much less work for the user than using the git repo.
but source builds really are problematic when the make install step could clobber your system's editor
On Linux its actually quite easy to build a fully isolated copy of Geany from git that can't clobber the system install (because its installed without privileges). I did once try to add the instructions to `README` or `INSTALL` (can't remember which) but it was sabotaged by other devs who kept adding more options and insisting it should not be in tree etc etc, so it was abandoned as it ended up no simpler.
Assuming you have installed the required tools (eg on Debuntu `build-essential`, `git`, `libgtk-3-dev`, `autoconf` and all its recommends and suggests). Many Geany users being developers will have at least some of these installed already.
In your home
``` mkdir git-geany; cd git-geany git clone https://github.com/geany/geany.git cd geany ./autogen.sh --prefix=/the/full/absolute/path/to/git-geany --disable-html-docs make install cd ../bin; ./geany -c ../config ```
Any time you cd to `git-geany/geany` you can follow (copy and paste) the command line instructions to checkout and test the PR on github and `make install`ing again. Each PR is in its own branch so they don't interfere. So you can test lots of PRs!!!!! :-)
When you are finished or something breaks your repository (damn force pushes) just delete the whole `git-geany` tree, I find its faster to re-clone something as small as Geany than it is to fix broken git repos.
hacking the LD_LIBRARY_PATH is not advisable
correct.