aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/ci.yml
AgeCommit message (Collapse)AuthorFilesLines
6 daysremoved the Github CI workflows: this is now fully replaced by the fmsbw.de ↵Robin Haberkorn1-147/+0
FreeBSD-based runners
2025-09-21when running the testsuite with --verbose, also turn off colors (--color=never)Robin Haberkorn1-3/+3
Improves readability of the log files.
2025-08-19curses: fixed configuration for native netbsd-curses and ncurses (several ↵Robin Haberkorn1-2/+2
corner cases) * pkg-config check for `ncurses` fails if it failed previously for `ncursesw`. This is the case e.g. for ncurses from NetBSD's pkgsrc. * No longer assume that any libncurses is not enhanced (X/Open compatible). * SciTECO and Scinterm require to find a curses.h in the include paths. The ncurses check must therefore not be limited to the first best ncurses/ncurses.h and the like. * We now always check for X/Open compatibility and always require a curses.h in the standard directories or as given by pkg-config. * AX_WITH_CURSES was radically rewritten and is now called AX_WITH_NCURSES. * --with-interface=netbsd-curses gets its own detection code. It always requires a curses.h in the standard paths and a libcurses. It should now be fixed for real NetBSD installations if the ncurses port is installed as well. * Unified all of the curses-arguments to CURSES_CFLAGS and CURSES_LIBS. There is no reason we need PDCURSES_CFLAGS, XCURSES_CFLAGS etc.
2025-06-04CI: test only on win64 as mingw-w64-i686-pdcurses was apparently dropped ↵Robin Haberkorn1-7/+7
from MSYS Ther rest of mingw32 still appears to exist, though.
2025-04-16CI/Nightly builds: Ubuntu 20.04 runners have been disabledRobin Haberkorn1-1/+1
* We can therefore no longer provide 20.04 nightly builds. Perhaps I will manually build binary releases for the v2.4.0 release for the last time. The PPA will still provide 20.04 of course. * The AppImages are consequently also built based on the Ubuntu 22.04 packages, which are now the oldest supported ones.
2025-04-03the tutorial is now built along with all other HTML documents if ↵Robin Haberkorn1-3/+3
--enable-html-docs * `--enable-html-manual` renamed to `--enable-html-docs`. * It's also uploaded to the website and linked to in README.
2025-03-22build nightlies on Ubuntu 24.04 as wellRobin Haberkorn1-1/+1
* Also run CI on 24.04. * The Ubuntu 20.04 runner is deprecated soon until 1. April 2025, but for the time being we keep supporting it as well.
2025-03-16CI: fixup - CFLAGS should not expand to "false"Robin Haberkorn1-2/+2
2025-03-16CI: perhaps fixed address sanitizingRobin Haberkorn1-4/+9
It can be done only under ncurses, as Gtk results in many false positives. Also, try to use it on GCC and Clang. It didn't work with GCC on FreeBSD, but perhaps it will work on Ubuntu.
2025-03-16CI: enable address sanitizer when building with ClangRobin Haberkorn1-1/+3
As I cannot run the test suite with Valgrind in Github runners, this should still catch some memory bugs during test suite runs.
2025-03-01CI: the IRC posting is now in a separate workflow and runs only after ↵Robin Haberkorn1-17/+0
successful ci.yml runs * people are not spammed with commits, that may cause problems when they try to pull them and rebuild
2025-03-01CI: fixed posting of latest commits into the IRC channelRobin Haberkorn1-10/+17
* This will post on __every__ push. In the future, we might want to post only after successful CI and consequently since the last commit, that had a successful CI run.
2025-03-01CI: post all new commits into the IRC channelRobin Haberkorn1-0/+10
2024-10-30CI: disabled Valgrind altogetherRobin Haberkorn1-2/+2
* Apparently it's not possible to run it as part of CI.
2024-10-30CI: Valgrind does not work in the Ubuntu runners, so let's try it under Mac OSRobin Haberkorn1-4/+4
2024-10-30testsuite: added --valgrind option for running SciTECO under Valgrind (memcheck)Robin Haberkorn1-2/+2
* Any memory error will let the test case fail with code 66. * You can also call make check TESTSUITEFLAGS="--valgrind" * There is no program test for Valgrind in configure.ac for the time being. `valgrind` must be in $PATH. * All CI testsuite runs under Ubuntu are now with Valgrind.
2024-09-21disable shared libraries by defaultRobin Haberkorn1-5/+2
* This is necessary to fix the Unicode test suite on Win32, so I was always passing in --disable-shared manually. It's easy to forget though when building from scratch. * We don't currently install any (shared) library, so this is safe on all platforms. In fact on all other platforms, libtool detects that and doesn't generate wrapper binaries in any way. Only on win32 it's apparently buggy.
2024-09-10fixed win32 CI and nightly builds (refs #5)Robin Haberkorn1-3/+6
* The libtool wrapper binaries do not pass down UTF-8 strings correctly, so the Unicode tests failed under some circumstances. * As we aren't actually linking against any locally-built shared libraries, we are passing --disable-shared to libtool which inhibts wrapper generation on win32 and fixes the test suite. * Also use up to date autotools. This didn't fix anything, though. * test suite: try writing an Unicode filename as well * There have been problems doing that on Win32 where UTF-8 was not correctly passed down from the command line and some Windows API calls were only working with ANSI filenames etc.
2024-08-24win32 CI: also set PDCURSES_CFLAGSRobin Haberkorn1-1/+4
Should fix `make distcheck`.
2024-08-23hopefully fixed the Windows CI testsRobin Haberkorn1-1/+2
* `make distcheck` will try to build against libncurses, which is not installed. Therefore, I set DISTCHECK_CONFIGURE_FLAGS in order to force it to PDCurses.
2024-08-23fully support out of tree buildsRobin Haberkorn1-10/+4
* You no longer have to copy contrib/scintilla, contrib/scinterm and contrib/lexilla manually to the build directory. * It turns out, that Scintilla/Lexilla was supporting this since 2016. Scintilla allows pointing to a source directory (srdir) and Lexilla to a binary directory (DIR_O). * For Scinterm I opened a pull request in order to add srcdir/basedir variables: https://github.com/orbitalquark/scinterm/pull/21 * `make distcheck` is therefore now also fixed. * The FreeBSD package is now allowed to build out of source. I haven't tested it yet. * See also https://github.com/ScintillaOrg/lexilla/issues/266
2024-05-22ci.yml: hopefully fixed Mac OS CI builds - it appears we need sudo nowRobin Haberkorn1-1/+1
2024-05-22updated CI workflows: bumped some versionsRobin Haberkorn1-3/+3
* MacOS packages are now built on macos-12 since macos-11 has been deprecated.
2022-11-20Github workflows: no longer try to build on deprecated runners like ↵Robin Haberkorn1-1/+1
ubuntu-18.04 and macos-10.15 As much as I like to support older systems, this will otherwise suddenly and unexpectedly break CI and nightly builds in the near future...
2022-01-15fixed CI builds on WindowsRobin Haberkorn1-1/+1
* Autotools are apparently no longer preinstalled or part of base-devel.
2021-10-24added ./configure --enable-debug and make sure that NDEBUG is defined properlyRobin Haberkorn1-3/+4
* This simplifies writing CFLAGS="-g -O0" CXXFLAGS="-g -O0". * We build "release" binaries by default. NDEBUG will now be defined unless you specify --enable-debug. This enables some optimizations that have long been implemented but were never actually active: * SciTECO shuts down faster since it will not explicitly free memory. On the downside, this would complicate memory debugging with Valgrind/memcheck. * dlmalloc is built with -DINSECURE=1 which is supposedly a bit faster. Some compilers also complained about an unportable preprocessor usage which should now be gone. * All CI builds are now with --enable-debug. This will slow them down but ensure that more code is executed and thus tested.
2021-10-12CI on MacOS should only use ClangRobin Haberkorn1-0/+4
* Lexilla apparently does not build with GCC, although that seems to be a matter of build flags.
2021-10-11upgraded to Scintilla 5.1.3 and Scinterm 3.1Robin Haberkorn1-6/+6
* Previous Scintilla version was 3.6.4 and Scinterm was 1.7 (with lots of custom patches). All of the patches are now either irrelevant or have been merged upstream. * Since Scintilla 5 requires C++17, this increases the minimum GCC version at least to 5.0. We may actually require even newer versions. * I could not upgrade the scintilla-mirror (which was imported from Mercurial), so the old sciteco-dev branch was renamed to sciteco-dev-pre-v2.0.0, master was deleted and I reimported the entire Scintilla repo using git-remote-hg. This means that scintilla-mirror now contains two entirely separate trees. But it is still possible to clone old SciTECO repos. * The strategy/workflow of maintaining hotfix branches on scintilla-mirror has been changed. Instead of having one sciteco-dev branch that is rebased onto new Scintilla upstream releases and tagging SciTECO releases in scintilla-mirror (to keep the commits referenced), we now create a branch for every Scintilla version we are based on (eg. sciteco-rel-5-1-3). This branch is never rebased or deleted. Therefore, we are guaranteed to be able to clone arbitrary SciTECO repo commits - not only releases. Releases no longer have to be tagged in scintilla-mirror. On the downside, fixup commits may accumulate in these new branches. They can only be squashed once a new branch for a new Scintilla release is created (e.g. by cherry-picking followed by rebase). * Scinterm does no longer have to reside in the Scintilla subdirectory, so we added it as a regular submodule. There are no more recursive submodules. The Scinterm build system has not been improved at all, but we use a trick based on VPATH to build Scinterm in scintilla/bin/. * Scinterm is now in Git and we reference the upstream repo for the time being. We might mirror it and apply the same branching workflow as with Scintilla if necessary. The scinterm-mirror repository still exists but has not been touched. We will also have to rewrite its master branch as it was a non-reproducible Mercurial import. * Scinterm now also comes with patches for Scintilla which we simply applied on our sciteco-rel-5-1-3 branch. * Scintilla 5 outsourced its lexers into the Lexilla project. We added it as yet another submodule. * All submodules have been moved into contrib/. * The Scintilla API for setting lexers has consequently changed. We now have to call SCI_SETILEXER(0, CreateLexer(name)). As I did not want to introduce a separate command for setting lexers, <ES> has been extended to allow setting lexers by name with the SCI_SETILEXER message which effectively replaces SCI_SETLEXERLANGUAGE. * The lexer macros (SCLEX_...) no longer serve any purpose - they weren't used in the SciTECO standard library anyway - and have consequently been removed from symbols-scilexer.c. The style macros from SciLexer.h (SCE_...) are theoretically still useful - even though they are not used by our current color schemes - and have therefore been retained. They can be specified as wParam in <ES>. * <ES> no longer allows symbolic constants for lParam. This never made any sense since all supported symbols were always wParam. * Scinterm supports new native cursor modes. They are not used for the time being and the previous CARETSTYLE_BLOCK_AFTER caret style is configured by default. It makes no sense to enable native cursor modes now since the command line should have a native cursor but is not yet a Scintilla view. * The Scintilla upgrade performed much worse than before, so some optimizations will be necessary.
2021-10-08CI: enabled the win32-curses test caseRobin Haberkorn1-48/+48
* The testsuite now works on my Windows 2008 Server installation, so hopefully it will also work on the build servers.
2021-10-08revised icon loading on Windows and packaging againRobin Haberkorn1-5/+1
* We don't need the PNG icons on Windows as the compiled-in ICO should suffice * Ship the dependencies of the SVG pixbuf loader. * The PNG pixbuf loader is still distributed, as we at least need it for loading the icon theme. * Install a loaders.cache - without it, the pixbuf loaders won't be found. This file can be generated by gdk-pixbuf-query-loaders but apparently has to be modified by hand. * Regenerate the icon cache using gtk-update-icon-cache. * Icon themes are found now. Unfortunately, we have to distribute the entire Adwaita icon theme as distributing only the scalable (SVG) icons does not work for some strange reason (FIXME).
2021-06-08improved PDCurses detectionRobin Haberkorn1-1/+1
* follow the current terminology: * PDCurses/Win32a is now called PDCursesMod and includes all other PDCurses ports as well. The Win32 GUI port is now called PDCurses/WinGUI. * PDCurses/Win32 is now called PDCurses/WinCon. * Since PDCursesMod supports WinCon as well, we use the PDCURSES_MOD macro only to detect PDCursesMod API extensions. GUIs (detached from system console) might be available both in classic PDCurses as well as in PDCursesMod. Only PDCursesMod allows detection of the port used *at runtime* using PDC_get_version(). We therefore introduced a --with-interface=pdcurses-gui that must be given whenever compiling for any kind of GUI port (including SDL on "classic" PDCurses). * The PDCURSES macro is used to detect all PDCurses (whether classic or PDCursesMod) API extensions. * __PDCURSES__ is used to detect PDCurses whenever API extensions are not required. * Assume that A_UNDERLINE now works even on WinCon.
2021-06-08get rid of the GObject Builder (GOB2): converted teco-gtk-info-popup.gob and ↵Robin Haberkorn1-1/+1
teco-gtk-label.gob to plain C * Using modern GObject idioms and macros greatly reduces the necessary boilerplate code. * The plain C versions of our GObject classes are now "final" (cannot be derived) This means we can hide the instance structures from the headers and avoid using explicit private fields. * Avoids some deprecation warnings when building the Gtk UI. * GOB2 is apparently no longer maintained, so this seems like a good idea in the long run. * The most important reason however is that there is no precompiled GOB2 for Windows which prevents compilation on native Windows hosts, eg. during nightly builds. This is even more important as Gtk+3 is distributed on Windows practically exclusively via MSYS. (ArchLinux contains MinGW gtk3 packages as well, so cross-compiling from ArchLinux would have been an alternative.)
2021-06-08added a CI job for Windows 32-bit (currently disabled)Robin Haberkorn1-0/+49
* The testsuite still fails and I cannot fix it without a Windows system or VM at hand. * Problems are probably related to <EC> (spawning). * Simply disabling the test suite would not make much sense as we already try building using nightly.yml.
2021-06-03ci.yml: run the test suite in verbose mode - we've got nothing but the ↵Robin Haberkorn1-2/+6
Github logs when it fails
2021-06-02CI Github workflow: turns out we need to manually install autotools on macOS ↵Robin Haberkorn1-1/+1
after all * the tools installed by default seem to lack aclocal...
2021-06-02Github workflows: some macOS simplifications and build nightly packages with ↵Robin Haberkorn1-7/+4
meaningful artifact names * Try to use as much of the "native" (Xcode?) tools on macOS as possible. We can still fall back to Homebrew if we have to.
2021-06-01ci.yml: try to build on macOSRobin Haberkorn1-1/+35
2021-06-01Continuous Integration artifacts are now built only once a day (nightly ↵Robin Haberkorn1-0/+57
builds) and include Gtk+ versions * The CI tests are unchanged. The workflow file has been renamed to ci.yml, though. * Nightly builds are described by nightly.yml and are built at 4:13. * Nightly Ubuntu package builds now include the Gtk+ 3 packages.