From c9537b355e7343f8ecc7f0f906c82e2d44f083b1 Mon Sep 17 00:00:00 2001 From: Nick Hall Date: Fri, 28 Jan 2022 18:33:37 +0000 Subject: [PATCH] Use GitHub Actions to run continuous integration checks --- .github/workflows/gramps-ci.yml | 76 +++++++++++++++++++++++++++++++++ setup.py | 4 +- 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/gramps-ci.yml diff --git a/.github/workflows/gramps-ci.yml b/.github/workflows/gramps-ci.yml new file mode 100644 index 000000000..28a5c940f --- /dev/null +++ b/.github/workflows/gramps-ci.yml @@ -0,0 +1,76 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2022 Nick Hall +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +name: Gramps CI + +on: + push: + branches: [ maintenance/gramps51 ] + pull_request: + branches: [ maintenance/gramps51 ] + +jobs: + build: + + runs-on: ubuntu-18.04 + + steps: + - uses: actions/checkout@v2 + - name: Install dependencies + run: | + sudo apt-get install gir1.2-pango-1.0 + sudo apt-get install gir1.2-gtk-3.0 + sudo apt-get install xdg-utils + sudo apt-get install librsvg2-common + sudo apt-get install libglib2.0-dev + sudo apt-get install intltool + sudo apt-get install python3-gi + sudo apt-get install python3-cairo + sudo apt-get install python3-gi-cairo + sudo apt-get install python3-bsddb3 + sudo apt-get install python3-dev + sudo apt-get install python3-nose + sudo apt-get install python3-mock + sudo apt-get install python3-icu + sudo apt-get install python3-coverage + sudo apt-get install python3-jsonschema + sudo apt-get install libxml2-utils + sudo apt-get install python3-lxml + sudo apt-get install python-libxml2 + sudo apt-get install zlib1g-dev + sudo apt-get install python3-setuptools + - name: Install addons + run: | + mkdir -p ~/.gramps/gramps51/plugins/ + wget https://github.com/gramps-project/addons/raw/master/gramps51/download/CliMerge.addon.tgz + tar -C ~/.gramps/gramps51/plugins -xzf CliMerge.addon.tgz + wget https://github.com/gramps-project/addons/raw/master/gramps51/download/ExportRaw.addon.tgz + tar -C ~/.gramps/gramps51/plugins -xzf ExportRaw.addon.tgz + - name: Build + run: | + python3 setup.py build + - name: Run unit test suite + run: | + python3 setup.py test + - name: Trailing whitespace check + run: | + if git --no-pager grep --color -n --full-name '[ ]$' -- \*.py; then + echo "ERROR - Trailing whitespace found in source file(s)"; + exit 1; + fi diff --git a/setup.py b/setup.py index a75ef4e22..351312446 100755 --- a/setup.py +++ b/setup.py @@ -306,7 +306,9 @@ class test(Command): raise RuntimeError("No build directory. Run `python setup.py build` before trying to run tests.") os.environ['GRAMPS_RESOURCES'] = '.' all_tests = unittest.TestLoader().discover('.', pattern='*_test.py') - unittest.TextTestRunner(verbosity=self.verbose).run(all_tests) + result = unittest.TextTestRunner(verbosity=self.verbose).run(all_tests) + if not result.wasSuccessful(): + raise SystemExit('ERROR: Unit test failure.') #------------------------------------------------------------------------- #