diff options
author | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-05-30 17:22:09 +0200 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2021-05-30 17:22:09 +0200 |
commit | ac772d940e60e11f4cacc3aab8aca9ad4d7b5e4e (patch) | |
tree | dced3cc80b87a2005c4216c63b2612e7d099914c /.github/workflows | |
parent | a79ba33b8adc74f8173547b4e1f74c279a160bac (diff) | |
download | sciteco-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.yml | 85 |
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 |