-
Notifications
You must be signed in to change notification settings - Fork 3
97 lines (96 loc) · 3.81 KB
/
testing_checks.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
name: Enforcing testing
on:
push:
branches:
- main
- develop
pull_request:
branches:
- main
- develop
tags:
- v*
schedule:
# Every 01:00 Sunday re-run the test on the main branch
- cron: '0 1 * * 0'
workflow_dispatch:
jobs:
testing:
runs-on: ubuntu-20.04
name: Running testing
strategy:
matrix:
app: [pylint, pytest]
include:
- app: pylint
pip_installs: pylint pytest
test_command: cat action_test_files.txt | xargs python3 -m pylint --rcfile ./pylint.rc
- app: pytest
pip_installs: pytest pytest-cov pytest-mypy
test_command: python3 -m pytest --cov=. -rpP --mypy --cov-report=xml
artifacts: coverage.txt
steps:
- name: Current python version
run: python3 --version || echo python3 not installed
- name: Install Python 3.8
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Updated python version
run: python3 --version
- name: PYTHONPATH environment variable
run: echo "PYTHONPATH is ${PYTHONPATH}"
- name: Update pip
run: python3 -m pip install --upgrade --no-cache-dir pip
- name: Fetch/update setuptools
run: python3 -m pip install --upgrade --no-cache-dir setuptools==58.0.1
- name: Fetch/update testing pip installations
run: python3 -m pip install --upgrade --no-cache-dir ${{ matrix.pip_installs }}
- name: Fetch source code
uses: actions/checkout@v2
- name: Finding files to process
run: find . -type f -name "*.py" > action_test_files.txt
- name: Update apt databases
shell: bash
run: 'sudo apt-get update'
- name: Install system requirements
shell: bash
run: 'sudo apt-get install -y python3-gdal gdal-bin libgdal-dev gcc g++ python3.8-dev'
- name: Install Python numpy
shell: bash
run: 'python3 -m pip install --upgrade --no-cache-dir numpy wheel'
- name: Install Python pygdal
shell: bash
run: 'python3 -m pip install --no-cache-dir pygdal==3.0.4.*'
- name: Install system requirements from source
shell: bash
run: '[ -s "packages.txt" ] && (cat packages.txt | sudo xargs apt-get install -y --no-install-recommends) || (echo "Failed to install additional packages" && exit 1)'
- name: Install Python requirements from source
shell: bash
run: '[ -s "requirements.txt" ] && (python3 -m pip install --no-cache-dir -r requirements.txt) || (echo "Failed to install Python requirements" && exit 1)'
- name: Run action pylint script
shell: bash
run: '[ -s ".github/workflows/action_pylint.sh" ] && (chmod +x ".github/workflows/action_pylint.sh" && ./.github/workflows/action_pylint.sh) || (echo "Error running shell script" && exit 1)'
- name: Fetching pylint.rc file
run: wget https://raw.githubusercontent.com/AgPipeline/Organization-info/master/pylint.rc
if: ${{ matrix.name }} == "pylint"
- name: Fetching setup.cfg file
run: wget https://raw.githubusercontent.com/AgPipeline/Organization-info/main/setup.cfg
if: ${{ matrix.name }} == "pytest"
- name: Set execution permission for testing
run: chmod +x plotclip.py
- name: Listing
run: ls -la
- name: Files to be tested
run: cat action_test_files.txt
- name: Running test
run: ${{ matrix.test_command }}
- name: Upload testing artifact
uses: actions/upload-artifact@v2
with:
name: testing_artifacts
path: ${{ matrix.artifacts }}
if: ${{ matrix.artifacts }}
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
if: ${{ matrix.app == 'pytest' }}