-
Notifications
You must be signed in to change notification settings - Fork 12
129 lines (125 loc) · 3.45 KB
/
feature.yml
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
name: Feature Tests
on:
push:
branches:
- feature/*
jobs:
static-checks:
name: Static Checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: "3.9"
- name: Update Pip
shell: bash
run: |
python -m pip install --upgrade pip
- name: Locate Pip Cache
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install
shell: bash
run: |
pip install poetry
poetry install --no-root
- name: Run Commit Checks
shell: bash
run: |
poetry run pre-commit run --all
unit-tests:
name: Unit Tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
python: [3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python }}
- name: Update Pip
shell: bash
run: |
python -m pip install --upgrade pip
- name: Locate Pip Cache
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install
shell: bash
run: |
pip install poetry
poetry install --no-root
- name: Run Unit Tests
shell: bash
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
run: |
poetry run tox -e py
poetry run codecov -F unit
- name: Store Results
if: always()
uses: actions/upload-artifact@v1
with:
name: junit
path: test-reports
build:
name: Build Binary
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: "3.9"
- name: Update Pip
shell: bash
run: |
python -m pip install --upgrade pip
- name: Locate Pip Cache
id: pip-cache
run: |
echo "::set-output name=dir::$(pip cache dir)"
- uses: actions/cache@v1
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('**/poetry.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install
shell: bash
run: |
pip install poetry
poetry install --no-root
- name: Build Binary
shell: bash
run: poetry run pyinstaller amaxa/__main__.py -n amaxa -F
- name: Test Binary
if: "!startsWith(matrix.os, 'windows')"
shell: bash
run: ./dist/amaxa -h
- name: Test Binary (Windows)
if: startsWith(matrix.os, 'windows')
shell: bash
run: ./dist/amaxa.exe -h