aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/nightly.yml
diff options
context:
space:
mode:
authorRobin Haberkorn <rhaberkorn@fmsbw.de>2025-10-04 21:02:51 +0200
committerRobin Haberkorn <rhaberkorn@fmsbw.de>2025-10-04 21:04:54 +0200
commit95e925c4cdf481a5b54c0cdc9bfbefe0d1b90a03 (patch)
treeb9387df56b57b634a336eefaffd1bc0f02452d5c /.github/workflows/nightly.yml
parent85b784c53f3b0fcd249f39403a6fc1c0cf693c3b (diff)
downloadsciteco-95e925c4cdf481a5b54c0cdc9bfbefe0d1b90a03.tar.gz
removed the Github CI workflows: this is now fully replaced by the fmsbw.de FreeBSD-based runners
Diffstat (limited to '.github/workflows/nightly.yml')
-rw-r--r--.github/workflows/nightly.yml338
1 files changed, 0 insertions, 338 deletions
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
deleted file mode 100644
index 2e494e4..0000000
--- a/.github/workflows/nightly.yml
+++ /dev/null
@@ -1,338 +0,0 @@
-name: Nightly Builds
-
-on:
- workflow_dispatch:
- schedule:
- # Daily at 3:14
- - cron: '14 3 * * *'
-
-jobs:
- # FIXME: AppImages can theoretically also be built on OBS.
- # Unfortunately it only works with packages from openSUSE 15.6.
- # Also, it's not trivial to build multiple AppImages on OBS.
- appimages:
- runs-on: ubuntu-22.04
-
- steps:
-
- - name: Git Clone
- uses: actions/checkout@v4.1.6
-
- - name: Update Repositories
- run: sudo apt-get update
-
- - name: Build AppImages
- env:
- GH_TOKEN: ${{ github.token }}
- run: |
- sudo apt-get install -y libfuse2 imagemagick wget
- cd AppImage
- gh release download -R AppImageCommunity/pkg2appimage -O pkg2appimage.AppImage \
- -p 'pkg2appimage-*-x86_64.AppImage' continuous
- 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 AppImages
- uses: pyTooling/Actions/releaser@v1.0.5
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- tag: nightly
- files: ./*.AppImage
-
- macos:
- runs-on: macos-13
-
- steps:
-
- - name: Git Clone
- uses: actions/checkout@v4.1.6
- with:
- submodules: true
-
- # NOTE: macOS already ships with ncurses and groff.
- # The system libncurses has turned out to be buggy, though (keypad() does not work).
- # However, it does work on real Mac OS systems, I was told.
- # Linking in our own ncurses should also be more portable in case
- # the system libncurses ABI breaks.
- # However, Homebrew installs ncurses as a keg and it will refer to a
- # non-standard $TERMINFO. This could be worked around.
- # The macOS Groff version appears to be outdated.
- - name: Install Build Dependencies
- run: brew install autoconf automake libtool glib groff dylibbundler
- # Required by pyTooling/Actions/releaser
- - name: Set up Python
- uses: actions/setup-python@v4.3.0
- with:
- python-version: '3.10'
- # FIXME: It would be nice to build universal arm64/x86_64 binaries,
- # this apparently requires two separate build runs and a following merge
- # using `lipo -create`. In this case we could just as well build two
- # separate packages.
- - name: Configure Build
- env:
- # Make sure we don't pick up GCC by accident.
- CC: clang
- CXX: clang++
- # FIXME: Once there is an --enable-lto, we should use that.
- CFLAGS: -O3 -flto
- CXXFLAGS: -O3 -flto
- LDFLAGS: -flto
- # Uncomment if you want to build against the Homebrew-installed libncurses.
- #PKG_CONFIG_PATH: /usr/local/opt/ncurses/lib/pkgconfig
- # NOTE: This will not result in a fully statically-linked binary,
- # but the more we get rid off, the better.
- # NOTE: Making the binary relocatable means it can be installed into non-root directories
- # with `installer -pkg -target`.
- run: |
- autoreconf -i
- ./configure --with-interface=ncurses --enable-static-executables --enable-html-docs \
- --with-scitecodatadir=../share/sciteco
-
- - name: make
- run: make -j 2
- # NOTE: The test suite must be run in verbose mode because if it fails
- # we won't be able to analyze testsuite.log.
- - name: Run Test Suite
- run: make check TESTSUITEFLAGS="--verbose --color=never"
-
- - name: Package
- run: |
- make install-strip DESTDIR=`pwd`/temp-install
- # There are libraries we cannot link against statically.
- # We ship them in /usr/local/lib/sciteco so as not to cause collisions with system
- # libraries or libraries installed via Homebrew.
- # System libraries are considered to have stable ABIs and
- # are not currently bundled.
- # FIXME: Is this really true for libc++?
- dylibbundler -b -x temp-install/usr/local/bin/sciteco \
- -cd -d temp-install/usr/local/lib/sciteco -p @executable_path/../lib/sciteco
- # FIXME: Should we encode the Git commit into the package version?
- # Unfortunately, I cannot find detailed information on how Mac OS
- # interpretes these version strings.
- VERSION=`sed -nE 's/#define PACKAGE_VERSION "(.*)"/\1/p' config.h`
- pkgbuild --identifier net.sf.sciteco.pkg --version $VERSION \
- --root temp-install --install-location / \
- sciteco-curses_nightly_macos_x86_64.pkg
- - name: Archive Mac OS Distribution (ncurses)
- uses: pyTooling/Actions/releaser/composite@v1.0.5
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- tag: nightly
- files: ./*.pkg
-
- # The website is published on Mac OS only because we cannot tweak the
- # ./configure flags on Ubuntu where Debian packages are built.
- # FIXME: This could be done without a gh-pages branch, see
- # https://github.com/actions/starter-workflows/blob/main/pages/static.yml
- # This however should be in its own workflow and we'd have to rebuild
- # SciTECO and everything.
- # FIXME: Also build cheat-sheet.pdf automatically?
- - run: make install
- - name: Install lowdown (Markdown processor)
- run: brew install lowdown
- - name: Generate website
- run: cd www && sciteco -m build.tes ..
- - name: Publish Website
- run: |
- cd www
- touch .nojekyll
- git init
- cp ../.git/config ./.git/config
- git add .nojekyll *.html
- git config --local user.email "Website@GitHubActions"
- git config --local user.name "GitHub Actions"
- git commit -a -m "update ${{ github.sha }}"
- git push -u origin +HEAD:gh-pages
-
- win64-curses:
- runs-on: windows-2022
-
- defaults:
- run:
- shell: bash.exe --login -eo pipefail "{0}"
- env:
- MSYSTEM: MINGW64
- CHERE_INVOKING: 1
-
- steps:
-
- - name: Git Clone
- uses: actions/checkout@v4.1.6
- with:
- submodules: true
-
- - name: Set Up Shell
- run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- shell: pwsh
-
- - name: Install Build Dependencies
- run: >
- pacman -S --noconfirm --needed
- base-devel mingw-w64-x86_64-autotools mingw-w64-x86_64-toolchain
- mingw-w64-x86_64-glib2 mingw-w64-x86_64-pdcurses
- groff zip
-
- - name: Configure Build
- env:
- CURSES_CFLAGS: -I/mingw64/include/pdcurses/
- # FIXME: glib on MinGW supports static linking but the gspawn
- # helper binaries are still linked dynamically, forcing us to ship
- # all DLLs anyway. Therefore it makes little sense to link SciTECO
- # itself statically - it only wastes a few MB.
- # You will also have to add --enable-static-executables.
- # The additional Windows libraries are for PDCursesMod/WinGUI:
-# LIBGLIB_LIBS: -lglib-2.0 -lintl -liconv -lpcre -lole32 -lws2_32 -luuid
- # FIXME: Once there is an --enable-lto, we should use that.
-# CFLAGS: -O3 -flto -DGLIB_STATIC_COMPILATION
- CFLAGS: -O3 -flto
- CXXFLAGS: -O3 -flto
- LDFLAGS: -flto
- run: |
- autoreconf -i
- mkdir build-wingui build-wincon
- (cd build-wingui
- ../configure --with-interface=pdcurses-gui --enable-html-docs --program-prefix=g \
- --with-scitecodatadir=. \
- CURSES_LIBS="-lpdcurses_wingui -lgdi32 -lcomdlg32 -lwinmm")
- (cd build-wincon
- ../configure --with-interface=pdcurses --enable-html-docs \
- --with-scitecodatadir=. \
- CURSES_LIBS="-lpdcurses_wincon -lgdi32 -lwinmm")
-
- - name: make
- run: |
- make -C build-wingui -j 2
- make -C build-wincon -j 2
- - name: make install
- run: |
- make -C build-wingui install-strip
- make -C build-wincon install-strip
- # NOTE: The test suite must be run in verbose mode because if it fails
- # we won't be able to analyze testsuite.log.
- - name: Run Test Suite
- run: |
- make -C build-wingui check TESTSUITEFLAGS="--verbose --color=never"
- make -C build-wincon check TESTSUITEFLAGS="--verbose --color=never"
-
- - name: Prepare Distribution Directory
- env:
- MINGW_BUNDLEDLLS_SEARCH_PATH: /mingw64/bin
- run: |
- mkdir temp-bin/
- cd temp-bin/
- cp -r /mingw64/bin/{gsciteco.exe,sciteco.exe,grosciteco.tes,tedoc.tes} ./
- # datadir is relative to bindir
- cp -r /mingw64/bin/{lib,*.tmac} ./
- cp /mingw64/bin/fallback.teco_ini .teco_ini
- cp -r /mingw64/share/doc/sciteco/* ./
- cp ../COPYING ../ChangeLog ./
- cp /mingw64/bin/gspawn-win64-helper*.exe ./
- # Collect DLLs for all included binaries
- for f in *.exe; do ../contrib/mingw-bundledlls --copy $f; done
- zip -9 -r ../sciteco-pdcurses_nightly_win64.zip .
- - name: Archive Windows Distribution (PDCurses)
- uses: pyTooling/Actions/releaser/composite@v1.0.5
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- tag: nightly
- files: ./*.zip
-
- # NOTE: There is a lot of redundancy with win32-curses.
- # However the Curses version may be linked statically, while Gtk+3 cannot be
- # linked statically on Windows (at least MSYS does not provide
- # static libraries) and would draw in libglib, libintl, libiconv etc. anyway.
- win64-gtk:
- runs-on: windows-2022
-
- defaults:
- run:
- shell: bash.exe --login -eo pipefail "{0}"
- env:
- MSYSTEM: MINGW64
- CHERE_INVOKING: 1
-
- steps:
-
- - name: Git Clone
- uses: actions/checkout@v4.1.6
- with:
- submodules: true
-
- - name: Set Up Shell
- run: echo C:\msys64\usr\bin\ | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- shell: pwsh
-
- - name: Install Build Dependencies
- run: >
- pacman -S --noconfirm --needed
- base-devel mingw-w64-x86_64-autotools mingw-w64-x86_64-toolchain
- mingw-w64-x86_64-glib2 mingw-w64-x86_64-gtk3 mingw-w64-x86_64-librsvg
- groff zip
-
- - name: Configure Build
- env:
- # FIXME: Once there is an --enable-lto, we should use that.
- CFLAGS: -O3 -flto
- CXXFLAGS: -O3 -flto
- LDFLAGS: -flto
- run: |
- autoreconf -i
- ./configure --with-interface=gtk --enable-html-docs \
- --with-scitecodatadir=.
-
- - name: make
- run: make -j 2
- - run: make install-strip
- # NOTE: The test suite must be run in verbose mode because if it fails
- # we won't be able to analyze testsuite.log.
- - name: Run Test Suite
- run: make check TESTSUITEFLAGS="--verbose --color=never"
-
- - name: Prepare Distribution Directory
- env:
- MINGW_BUNDLEDLLS_SEARCH_PATH: /mingw64/bin
- run: |
- mkdir temp-bin
- cd temp-bin
- cp /mingw64/bin/{sciteco.exe,grosciteco.tes,tedoc.tes} ./
- # datadir is relative to bindir
- cp -r /mingw64/bin/{lib,*.tmac} ./
- cp /mingw64/bin/fallback.teco_ini .teco_ini
- cp /mingw64/bin/fallback.css ../win32/.teco_css .
- cp -r /mingw64/share/doc/sciteco/* ./
- cp ../COPYING ../ChangeLog ./
- cp /mingw64/bin/gspawn-win64-helper*.exe ./
- # Collect DLLs for all included binaries
- for f in *.exe; do ../contrib/mingw-bundledlls --copy $f; done
- #mkdir share
- #cp /mingw64/share/loader.cache share/
- #glib-compile-schemas /mingw64/share/glib-2.0/schemas
- #mkdir -p share/glib-2.0
- #cp /mingw64/share/glib-2.0/gschemas.compiled share/glib-2.0/
- mkdir -p share/icons/Adwaita
- # FIXME: It should be sufficient to package the SVG icons,
- # but I cannot get it to work. Perhaps index.theme would have to be tweaked.
- # We could also try to include a pure scalable icon theme.
- #cp -r /mingw64/share/icons/Adwaita/{scalable*,index.theme} share/icons/Adwaita/
- cp -r /mingw64/share/icons/Adwaita/* share/icons/Adwaita/
- gtk-update-icon-cache-3.0 share/icons/Adwaita/
- # FIXME: It's possible to change the location of loaders.cache via $GDK_PIXBUF_MODULE_FILE.
- # If we did that, we could avoid "reusing" the lib/ directory.
- # This is important when somebody changes $SCITECOPATH.
- cp /mingw64/lib/gdk-pixbuf-2.0/2.10.0/loaders/{pixbufloader_svg.dll,libpixbufloader-png.dll} .
- # Collect DLLs for all pixbuf loaders into the root directory
- for f in *pixbufloader*.dll; do ../contrib/mingw-bundledlls --copy $f; done
- mkdir -p lib/gdk-pixbuf-2.0/2.10.0/loaders/
- mv *pixbufloader*.dll lib/gdk-pixbuf-2.0/2.10.0/loaders/
- cp ../win32/loaders.cache lib/gdk-pixbuf-2.0/2.10.0/
- zip -9 -r ../sciteco-gtk3_nightly_win64.zip .
- - name: Archive Windows Distribution (GTK+ 3)
- uses: pyTooling/Actions/releaser/composite@v1.0.5
- with:
- token: ${{ secrets.GITHUB_TOKEN }}
- tag: nightly
- files: ./*.zip