Skip to content

Commit

Permalink
Merge pull request autokey#778 from userdocs/master
Browse files Browse the repository at this point in the history
workflow python-test.yml updated to work with ubuntu-latest
  • Loading branch information
BlueDrink9 authored Feb 23, 2023
2 parents 5ca17a2 + abdc1b0 commit 7acde85
Show file tree
Hide file tree
Showing 2 changed files with 133 additions and 134 deletions.
265 changes: 133 additions & 132 deletions .github/workflows/python-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,163 +4,164 @@
name: Python test

on:
# workflow_dispatch:
push:
# paths:
# - "**.py"
# Test on tags to ensure that the version metadata has been updated in tag as well.
tags:
- '*'
branches: [ CI, master, develop, beta ]
- "*"
branches: [master, develop, beta]
pull_request:
branches: [ master, develop, beta ]
branches: [master, develop, beta]

jobs:
Lint:

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

strategy:
matrix:
python-version: [3.6, 3.10.1]
python-version: ["3.7", "3.10"]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Cache pip
uses: actions/cache@v2
with:
# This path is specific to Ubuntu
path: ~/.cache/pip
# Look to see if there is a cache hit for the corresponding requirements file
key: ${{ runner.os }}-pip-${{ hashFiles('pip-requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Install dependencies
run: |
sudo apt update
sudo apt install $(cat apt-requirements.txt)
python -m pip install --upgrade pip
pip install flake8 wheel
pip install -r pip-requirements.txt
- name: Python Code Quality and Lint
uses: ricardochaves/[email protected]
with:
python-root-list: "lib/autokey tests"
use-pylint: false
use-pycodestyle: false
use-flake8: true
use-black: false
use-mypy: false
use-isort: false
extra-pylint-options: ""
extra-pycodestyle-options: ""
# select = stop the build if there are Python syntax errors or undefined names
# exit-zero treats all errors as warnings.
# "_" is part of gettext, not actually a built-in, but used almost
# everywhere without explicit definition.
# The GitHub editor is 127 chars wide.
extra-flake8-options: >
--count
--select=E9,F63,F7,F82
--show-source
--statistics
--builtins=_
--max-complexity=10
--max-line-length=127
extra-black-options: ""
extra-mypy-options: ""
extra-isort-options: ""
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"

- name: Cache pip
uses: actions/cache@v3
with:
# This path is specific to Ubuntu
path: ~/.cache/pip
# Look to see if there is a cache hit for the corresponding requirements file
key: ${{ runner.os }}-pip-${{ hashFiles('pip-requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Install dependencies
run: |
sudo apt update
sudo apt install $(cat apt-requirements.txt)
python -m pip install --upgrade pip
pip install flake8 wheel
pip install -r pip-requirements.txt
- name: Python Code Quality and Lint
uses: ricardochaves/[email protected]
with:
python-root-list: "lib/autokey tests"
use-pylint: false
use-pycodestyle: false
use-flake8: true
use-black: false
use-mypy: false
use-isort: false
extra-pylint-options: ""
extra-pycodestyle-options: ""
# select = stop the build if there are Python syntax errors or undefined names
# exit-zero treats all errors as warnings.
# "_" is part of gettext, not actually a built-in, but used almost
# everywhere without explicit definition.
# The GitHub editor is 127 chars wide.
extra-flake8-options: >
--count
--select=E9,F63,F7,F82
--show-source
--statistics
--builtins=_
--max-complexity=10
--max-line-length=127
extra-black-options: ""
extra-mypy-options: ""
extra-isort-options: ""

pytest:

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

strategy:
matrix:
python-version: [3.6, 3.10.1]
python-version: ["3.7", "3.10"]

steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Cache pip
uses: actions/cache@v2
with:
# This path is specific to Ubuntu
path: ~/.cache/pip
# Look to see if there is a cache hit for the corresponding requirements file
key: ${{ runner.os }}-pip-${{ hashFiles('pip-requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Install dependencies
run: |
sudo apt update
sudo apt install $(cat apt-requirements.txt)
python -m pip install --upgrade pip
pip install flake8 tox pytest pytest-cov wheel
pip install -r pip-requirements.txt
- name: Test with tox and pytest
run: |
tox -e clean,coverage,report
- name: Upload pytest test results
uses: actions/upload-artifact@v2
with:
name: pytest-results-${{ matrix.python-version }}
path: junit/test-results-${{ matrix.python-version }}.xml
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}

- name: Archive test coverage report
run: |
tar -cvzf test_coverage_report-${{ matrix.python-version }}.tar.gz test_coverage_report_html/
- name: Upload test coverage report
uses: actions/upload-artifact@v2
with:
name: test_coverage_report-${{ matrix.python-version }}.tar.gz
path: test_coverage_report-${{ matrix.python-version }}.tar.gz
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"

- name: Cache pip
uses: actions/cache@v3
with:
# This path is specific to Ubuntu
path: ~/.cache/pip
# Look to see if there is a cache hit for the corresponding requirements file
key: ${{ runner.os }}-pip-${{ hashFiles('pip-requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Install dependencies
run: |
sudo apt update
sudo apt install $(cat apt-requirements.txt)
python -m pip install --upgrade pip
pip install flake8 tox pytest pytest-cov wheel
pip install -r pip-requirements.txt
- name: Test with tox and pytest
run: tox -e clean,coverage,report

- name: Upload pytest test results
uses: actions/upload-artifact@v3
with:
name: pytest-results-${{ matrix.python-version }}
path: junit/test-results-${{ matrix.python-version }}.xml
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}

- name: Archive test coverage report
run: tar -cvzf test_coverage_report-${{ matrix.python-version }}.tar.gz test_coverage_report_html/

- name: Upload test coverage report
uses: actions/upload-artifact@v3
with:
name: test_coverage_report-${{ matrix.python-version }}.tar.gz
path: test_coverage_report-${{ matrix.python-version }}.tar.gz
# Use always() to always run this step to publish test results when there are test failures
if: ${{ always() }}

test-install:
# Just runs basic app options to ensure pip installation has included relevant imports and put app in path.

runs-on: ubuntu-20.04
runs-on: ubuntu-latest

strategy:
matrix:
python-version: [3.6, 3.10.1]
python-version: ["3.7", "3.10"]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}

- name: Install OS dependencies only
run: |
sudo apt update
sudo apt install $(cat apt-requirements.txt)
python -m pip install --upgrade pip
pip install dbus-python gobject pygobject PyQt5 qscintilla
- name: Test installation
run: |
pip install "${GITHUB_WORKSPACE}"
autokey-gtk --help
# qt xcb module requires a display to connect to, so won't work.
# export QT_DEBUG_PLUGINS=1
# autokey-qt --help
- uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: "${{ matrix.python-version }}"

- name: Install OS dependencies only
run: |
sudo apt update
sudo apt install $(cat apt-requirements.txt)
python -m pip install --upgrade pip
pip install dbus-python gobject pygobject PyQt5 qscintilla
- name: Test installation
run: |
pip install "${GITHUB_WORKSPACE}"
autokey-gtk --help
# qt xcb module requires a display to connect to, so won't work.
# export QT_DEBUG_PLUGINS=1
# autokey-qt --help
2 changes: 0 additions & 2 deletions apt-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
dbus
python3-dbus
python-dbus
libdbus-1-dev
libpython3-dev
libdbus-glib-1-dev
Expand All @@ -12,7 +11,6 @@ gir1.2-appindicator3-0.1
gir1.2-glib-2.0
gir1.2-notify-0.7
python3-gi
python-gobject
zenity
kdialog
pyqt5-dev-tools

0 comments on commit 7acde85

Please sign in to comment.