From 95e925c4cdf481a5b54c0cdc9bfbefe0d1b90a03 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sat, 4 Oct 2025 21:02:51 +0200 Subject: removed the Github CI workflows: this is now fully replaced by the fmsbw.de FreeBSD-based runners --- .github/workflows/nightly.yml | 338 ------------------------------------------ 1 file changed, 338 deletions(-) delete mode 100644 .github/workflows/nightly.yml (limited to '.github/workflows/nightly.yml') 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 -- cgit v1.2.3