aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/ci.yml')
-rw-r--r--.github/workflows/ci.yml57
1 files changed, 57 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..4351a0c
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,57 @@
+name: Continuous Integration
+
+on:
+ push:
+ branches: [ master ]
+ pull_request:
+ branches: [ master ]
+
+jobs:
+ build:
+ strategy:
+ matrix:
+ os: [ubuntu-18.04, ubuntu-20.04]
+ compiler: ['CC=gcc CXX=g++', 'CC=clang CXX=clang++']
+ interface: [ncurses, gtk]
+
+ # NOTE: The virtual environments already contain both GCC and Clang
+ runs-on: ${{ matrix.os }}
+
+ steps:
+
+ - name: Recursive Git Clone
+ uses: actions/checkout@v2
+ with:
+ submodules: recursive
+
+ - name: Update Repositories
+ run: sudo apt-get update
+ - name: Install Build Dependencies
+ run: >
+ sudo apt-get install -y
+ build-essential
+ autoconf automake libtool
+ libglib2.0-dev libncurses-dev libgtk-3-dev gob2 xvfb
+ groff doxygen
+
+ - name: Configure Build
+ run: |
+ autoreconf -i
+ ./configure --with-interface=${{ matrix.interface }} --enable-html-manual ${{ matrix.compiler }}
+
+ # NOTE: xvfb-run emulates an XServer and is required when building
+ # Gtk versions (since SciTECO calls itself during the build).
+ - name: make
+ run: xvfb-run -a make
+ - name: make install
+ run: sudo xvfb-run -a make install
+ - name: Run Test Suite
+ run: xvfb-run -a make check
+ - 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.
+# - name: make distcheck
+# run: xvfb-run -a make distcheck
+ - name: Build Source Tarball
+ run: make dist