Skip to content

Commit

Permalink
Update CI workflow for poetry
Browse files Browse the repository at this point in the history
This also adds pytest and flake8 to DEV deps since they are needed for CI.
  • Loading branch information
chase9 committed Apr 8, 2024
1 parent 0666f0d commit 43425d4
Showing 1 changed file with 26 additions and 23 deletions.
49 changes: 26 additions & 23 deletions .github/workflows/python-app.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,51 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Python application
name: Python CI

on:
push:
branches: [ master ]
branches: [master]
pull_request:
branches: [ master ]
branches: [master]

jobs:
build:

runs-on: ubuntu-22.04

ci:
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
os: [ubuntu-22.04]
runs-on: ${{matrix.os}}
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.10
- name: Install Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Cache pip
python-version: ${{matrix.python-version}}
- name: Install Poetry
uses: abatilo/actions-poetry@v2
- name: Set up local virtual environment
run: |
poetry config virtualenvs.create true --local
poetry config virtualenvs.in-project true --local
- name: Cache packages
uses: actions/cache@v4
with:
# This path is specific to ubuntu
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
path: ./.venv
key: venv-${{ hashFiles('poetry.lock') }}
- name: Install dependencies
run: |
sudo apt install qt6-base-dev libsystemd-dev gcc
python -m pip install --upgrade pip
pip install flake8 pytest
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
poetry install
- name: Compile ui, translations and resources
run: ./scripts/build_ui.sh
run: poetry run ./scripts/build_ui.sh
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
poetry run flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
poetry run flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Test with pytest
run: |
pytest
poetry run pytest -v

0 comments on commit 43425d4

Please sign in to comment.