From b6d1e87092eabb464f33c5087b698672f5251948 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Wed, 22 May 2024 19:52:33 +0300 Subject: build and upload AppImages as part of nightly builds --- .github/workflows/nightly.yml | 18 ++++++++++++++++-- AppImage/curses.yml | 31 +++++++++++++++++++++++++++++++ AppImage/gtk.yml | 29 +++++++++++++++++++++++++++++ README | 4 ++-- TODO | 5 ++++- 5 files changed, 82 insertions(+), 5 deletions(-) create mode 100755 AppImage/curses.yml create mode 100755 AppImage/gtk.yml diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ba5af31..c202623 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -47,12 +47,26 @@ jobs: cp debian-temp/sciteco-gtk_*.deb sciteco-gtk_nightly_${{matrix.os}}_amd64.deb cp debian-temp/sciteco-common_*.deb sciteco-common_nightly_${{matrix.os}}_all.deb - - name: Archive Debian/Ubuntu Packages + - name: Build AppImages + # Should always be on the oldest supported Ubuntu + if: matrix.os == 'ubuntu-20.04' + run: | + cd AppImage + wget -O pkg2appimage.AppImage \ + "https://github.com/AppImageCommunity/pkg2appimage/releases/download/continuous/pkg2appimage--x86_64.AppImage" + chmod +x pkg2appimage.AppImage + ./pkg2appimage.AppImage curses.yml + mv out/*.AppImage sciteco-curses_nightly_x86_64.AppImage + ./pkg2appimage.AppImage gtk.yml + mv out/*.AppImage sciteco-gtk_nightly_x86_64.AppImage + chmod a+x *.AppImage + + - name: Archive Debian/Ubuntu Packages and AppImages uses: pyTooling/Actions/releaser@v1.0.5 with: token: ${{ secrets.GITHUB_TOKEN }} tag: nightly - files: ./*.deb + files: ./*.deb ./AppImage/*.AppImage macos: runs-on: macos-12 diff --git a/AppImage/curses.yml b/AppImage/curses.yml new file mode 100755 index 0000000..d219c0b --- /dev/null +++ b/AppImage/curses.yml @@ -0,0 +1,31 @@ +app: sciteco-curses + +# We currently use paths hardcoded at build-time. +# Alternatively, it would be possible to customize the AppRun script or +# add a wrapper that sets $SCITECOPATH. +union: true + +ingredients: + packages: + - sciteco-curses + dist: focal + sources: + - deb http://archive.ubuntu.com/ubuntu/ focal main universe +# ppas: +# - robin-haberkorn/sciteco + script: + - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-common_nightly_ubuntu-20.04_all.deb" + - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-curses_nightly_ubuntu-20.04_all.deb" + post_script: + - dpkg -I sciteco-curses*.deb | grep "Version:" | cut -d':' -f2 | cut -d'+' -f1 | sed 's/^[ ]*//g' >VERSION + +script: + # This is currently not installed by sciteco-curses. + # FIXME: There should perhaps be a unique name in the desktop file, so it does not conflict with the Gtk version. + - wget -O sciteco-curses.desktop -c "https://raw.githubusercontent.com/rhaberkorn/sciteco/master/src/sciteco.desktop" + - sed -i -e 's@gsciteco@sciteco@g' sciteco-curses.desktop + - echo 'Terminal=true' >>sciteco-curses.desktop + - wget -O sciteco.png -c "https://raw.githubusercontent.com/rhaberkorn/sciteco/master/ico/sciteco-256.png" + # Thinning: These documentation files are pointless. + # SciTECO comes with its own online help system. + - rm -rf ./usr/share/doc ./usr/share/man diff --git a/AppImage/gtk.yml b/AppImage/gtk.yml new file mode 100755 index 0000000..b6304bf --- /dev/null +++ b/AppImage/gtk.yml @@ -0,0 +1,29 @@ +app: sciteco-gtk + +# We currently use paths hardcoded at build-time. +# Alternatively, it would be possible to customize the AppRun script or +# add a wrapper that sets $SCITECOPATH. +union: true + +ingredients: + packages: + - sciteco-gtk + dist: focal + sources: + - deb http://archive.ubuntu.com/ubuntu/ focal main universe +# ppas: +# - robin-haberkorn/sciteco + script: + - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-common_nightly_ubuntu-20.04_all.deb" + - wget -c "https://github.com/rhaberkorn/sciteco/releases/download/nightly/sciteco-gtk_nightly_ubuntu-20.04_all.deb" + post_script: + - dpkg -I sciteco-gtk*.deb | grep "Version:" | cut -d':' -f2 | cut -d'+' -f1 | sed 's/^[ ]*//g' >VERSION + +script: + # FIXME: There should perhaps be a unique name in the desktop file, so it does not conflict with the Curses version. + - mv ./usr/share/applications/sciteco.desktop ./sciteco-gtk.desktop + - cp ./usr/share/icons/hicolor/256x256/apps/sciteco.png ./sciteco.png + - rm -rf ./usr/share/icons + # Thinning: These documentation files are pointless. + # SciTECO comes with its own online help system. + - rm -rf ./usr/share/doc ./usr/share/man diff --git a/README b/README index 0c74250..ea16ba0 100644 --- a/README +++ b/README @@ -115,12 +115,12 @@ There are prebuilt binary packages and source bundles for your convenience: [`sciteco` package from this layer](https://github.com/rhaberkorn/meta-rhaberkorn). * [Chocolatey package](https://community.chocolatey.org/packages/SciTECO) for Windows users. -* The official [SciTECO homepage](http://sciteco.sf.net/) is a live demo. These releases may be quite outdated and not all of them are provided or tested by the author. So you may also try out the [nightly builds](https://github.com/rhaberkorn/sciteco/releases/tag/nightly) - they represent the repository's HEAD commit but may well be unstable. -Both ncurses and Gtk+ packages are provided both for Ubuntu and Windows. +Both ncurses and Gtk+ packages are provided for Ubuntu, generic Linux +(in the form of [AppImages](https://appimage.org/)) and Windows. For [Mac OS X](https://github.com/rhaberkorn/sciteco/wiki/Mac-OS-Support), we currently only provide *experimental* ncurses builds. diff --git a/TODO b/TODO index 95b7b71..357044f 100644 --- a/TODO +++ b/TODO @@ -454,11 +454,11 @@ Features: A new private key has already been registered on Launchpad and Github. We just need to integrate with CI. See also https://github.com/marketplace/actions/import-gpg - * AppImage for Linux * 64-bit Windows builds * Mac OS Arm64 builds either separately or via universal binary. See https://codetinkering.com/switch-homebrew-arm-x86/ Target flag: `-target arm64-apple-macos11` + * Get into AppImageHub. * Linux: Relocatable binaries instead of hardcoding the library path. This makes it possible to run builds installed via `make install DESTDIR=...` and will aid in creating AppImages. @@ -485,6 +485,9 @@ Features: https://github.com/fpjohnston/TECO-64/blob/master/doc/oper.md However, instead of introducing a separate parser state, better use operators like ~=, ~< etc. + * It should be possible to disable auto-completions of one-character + register names, so that we can map the idention macro to M. + * fnkeys.tes: Rubin/Rubout via cursor keys? Optimizations: * Use SC_DOCUMENTOPTION_STYLES_NONE in batch mode. -- cgit v1.2.3