Add github workflow running on github for every push and pull requests.
The CI run the tests with multiple python versions, ensuring that
sanlock builds and run on Ubuntu latest (20.04), and the python bindings
is compatible with python 3.6-3.10.
The new CI revealed these issues:
- Unneeded chown in lockfile() when not running as root
- Unneeded chown in setup_listener()
- test_write_lockspace_4k[user_4k_path0-1048576] is flaky in python 3.6
- test_write_lockspace_4k[user_4k_path0-1048576] broken in python 3.9
- test_write_resource_invalid_disk[disk5] broken in python 3.9, 3.10, 3.11
Example run:
https://github.com/nirs/sanlock/actions/runs/3559245867/
Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
---
.github/workflows/ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 .github/workflows/ci.yml
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..125eee6
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,48 @@
+# Copyright (C) 2022 Red Hat, Inc.
+#
+# 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.
+
+name: CI
+
+on:
+ - push
+ - pull_request
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ include:
+ - python_version: '3.6'
+ - python_version: '3.7'
+ - python_version: '3.8'
+ - python_version: '3.9'
+ - python_version: '3.10'
+ - python_version: '3.11'
+ steps:
+ - name: Checkout source
+ uses: actions/checkout@v3
+
+ - name: Setup python
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{matrix.python_version}}
+ cache: 'pip'
+ check-latest: true
+
+ - name: Install required packages
+ run: sudo apt install -y gcc make libaio-dev libblkid-dev uuid-dev
+
+ - name: Install pip requirements
+ run: pip install -r requirements.txt
+
+ - name: Setup userstorage
+ run: userstorage create tests/storage.py
+
+ - name: Run tests
+ run: tox
--
2.38.1