aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-05-30 17:22:09 +0200
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-05-30 17:22:09 +0200
commitac772d940e60e11f4cacc3aab8aca9ad4d7b5e4e (patch)
treedced3cc80b87a2005c4216c63b2612e7d099914c /.github/workflows
parenta79ba33b8adc74f8173547b4e1f74c279a160bac (diff)
downloadsciteco-ac772d940e60e11f4cacc3aab8aca9ad4d7b5e4e.tar.gz
continuous-integration.yml: build on Ubuntu 18.04, Ubuntu 20.04 with GCC and Clang and package for both versions of Ubuntu
* Testing is done only in the "build-and-test" job. * Packages are built by the debian-packages job since there is no need building them with Clang.
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/continuous-integration.yml85
1 files changed, 61 insertions, 24 deletions
diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml
index 8b2a9af..1a55ba6 100644
--- a/.github/workflows/continuous-integration.yml
+++ b/.github/workflows/continuous-integration.yml
@@ -7,55 +7,92 @@ on:
branches: [ master ]
jobs:
- build:
+ build-and-test:
+ strategy:
+ matrix:
+ os: [ubuntu-18.04, ubuntu-20.04]
+ compiler: ['CC=gcc CXX=g++', 'CC=clang CXX=clang++']
- runs-on: ubuntu-latest
+ # NOTE: The virtual environments already contain both GCC and Clang
+ runs-on: ${{ matrix.os }}
steps:
- - name: Recursive Git clone
+ - name: Recursive Git Clone
uses: actions/checkout@v2
with:
submodules: recursive
- - name: Install build dependencies
+ - name: Install Build Dependencies
run: >
sudo apt-get install -y
- devscripts build-essential lintian debhelper
+ build-essential
autoconf automake libtool
libglib2.0-dev libncurses-dev
groff doxygen
- - name: Configure build
+ - name: Configure Build
run: |
autoreconf -i
- ./configure --with-interface=ncurses --enable-html-manual
+ ./configure --with-interface=ncurses --enable-html-manual ${{ matrix.compiler }}
- run: make
- run: sudo make install
- - name: Run test suite
+ - name: Run Test Suite
run: make check
- - name: Build developer documentation
+ - name: Build Developer Documentation
run: cd doc && make devdoc
-# FIXME: Will try to perform an out-of-tree build which will not
-# work without manual intervention due to Scintilla.
+ # FIXME: Will try to perform an out-of-tree build which will not
+ # work without manual intervention due to Scintilla.
# - run: make distcheck
- - name: Build source tarball
+ - name: Build Source Tarball
run: make dist
-# NOTE: distribute.mk currently requires an installed SciTECO.
-# Packages are left in debian-temp/.
-# It would be sufficient to build debian-binary, but we want to
-# test building source packages as well.
- - name: Build Debian package
- run: ./distribute.mk debian
-# FIXME: For doing Windows builds, we need a few manually built packages
-# (PDCurses, Glib...).
-# Perhaps they can be uploaded to Sourceforge and simply downloaded here.
-# - name: Build Windows bundle
+ # This is a separate job since we don't need to build Debian packages
+ # using Clang and there is no need to run "make all".
+ debian-packages:
+ strategy:
+ matrix:
+ os: [ubuntu-18.04, ubuntu-20.04]
+
+ runs-on: ${{ matrix.os }}
+
+ steps:
+
+ - name: Recursive Git Clone
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Install Build Dependencies
+ run: >
+ sudo apt-get install -y
+ devscripts build-essential lintian debhelper
+ autoconf automake libtool
+ libglib2.0-dev libncurses-dev
+ groff-base
+
+ # NOTE: We need to configure the build directory only to generate distribute.mk.
+ - name: Configure Build
+ run: |
+ autoreconf -i
+ ./configure
+
+ # NOTE: Packages are left in debian-temp/.
+ - name: Build Debian Package
+ run: ./distribute.mk debian-binary
+ # FIXME: For doing Windows builds, we need a few manually built packages
+ # (PDCurses, Glib...).
+ # Perhaps they can be uploaded to Sourceforge and simply downloaded here.
+# - name: Build Windows Bundle
# run: ./distribute.mk mingw-binary
- - name: Archive build artifacts
+ # FIXME: We need to upload a single file without a wildcard since
+ # it will otherwise be put into a ZIP.
+ # Best let distribute.mk create a symlink so we don't have to include
+ # the version here.
+ - name: Archive Debian Package (ncurses)
uses: actions/upload-artifact@v2
with:
- path: debian-temp/*.deb
+ name: ${{ matrix.os }} package (ncurses)
+ path: debian-temp/sciteco-curses_2.0.0-0_amd64.deb