name: Continuous Integration on: push: branches: [ master ] pull_request: branches: [ master ] jobs: ubuntu: 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 macos: runs-on: macos-latest steps: - name: Recursive Git Clone uses: actions/checkout@v2 with: submodules: recursive - name: Install Build Dependencies run: > brew install autoconf automake libtool glib ncurses groff doxygen - name: Configure Build run: | autoreconf -i ./configure --with-interface=ncurses --enable-html-manual - run: make - run: make install - name: Run Test Suite run: 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: make distcheck - name: Build Source Tarball run: make dist