summaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/ci.yml64
1 files changed, 64 insertions, 0 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..752ddb5
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,64 @@
+name: mycli
+
+on:
+ pull_request:
+ paths-ignore:
+ - '**.md'
+
+jobs:
+ linux:
+ strategy:
+ matrix:
+ python-version: ['3.7', '3.8', '3.9', '3.10']
+ include:
+ - python-version: '3.7'
+ os: ubuntu-18.04 # MySQL 5.7.32
+ - python-version: '3.8'
+ os: ubuntu-18.04 # MySQL 5.7.32
+ - python-version: '3.9'
+ os: ubuntu-20.04 # MySQL 8.0.22
+ - python-version: '3.10'
+ os: ubuntu-22.04 # MySQL 8.0.28
+
+ runs-on: ${{ matrix.os }}
+ steps:
+
+ - uses: actions/checkout@v2
+
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: Start MySQL
+ run: |
+ sudo /etc/init.d/mysql start
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements-dev.txt
+ pip install --no-cache-dir -e .
+
+ - name: Wait for MySQL connection
+ run: |
+ while ! mysqladmin ping --host=localhost --port=3306 --user=root --password=root --silent; do
+ sleep 5
+ done
+
+ - name: Pytest / behave
+ env:
+ PYTEST_PASSWORD: root
+ PYTEST_HOST: 127.0.0.1
+ run: |
+ ./setup.py test --pytest-args="--cov-report= --cov=mycli"
+
+ - name: Lint
+ run: |
+ ./setup.py lint --branch=HEAD
+
+ - name: Coverage
+ run: |
+ coverage combine
+ coverage report
+ codecov