-
Notifications
You must be signed in to change notification settings - Fork 16
139 lines (110 loc) · 3.41 KB
/
check-python.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
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
130
131
132
133
134
135
136
137
138
139
name: Check Python Code
on:
workflow_call:
pull_request:
jobs:
check-python:
runs-on: "ubuntu-latest"
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction --with cicd --with doc
- name: Check pre-commits
run: |
set -o pipefail
poetry run pre-commit run --all-files && git diff --exit-code
- name: Check generated code
run: |
set -o pipefail
poetry run poe gen && git diff --exit-code
- name: Check documentation
run: |
set -o pipefail
poetry run poe docs
- name: Check wheels can be built
run: |
set -o pipefail
# build stubs
pushd stubs
poetry build --format wheel
popd
# build compiler
poetry build --format wheel
tests:
runs-on: "ubuntu-latest"
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction --with cicd
- name: Start LocalNet
run: poetry run algokit localnet start
- name: pytest + coverage
shell: bash
env:
COVERAGE_CORE: sysmon
run: |
set -o pipefail
poetry run pytest --junitxml=pytest-junit.xml --cov | tee pytest-coverage.txt
- name: pytest coverage comment
continue-on-error: true # forks fail to add a comment, so continue any way
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./pytest-coverage.txt
junitxml-path: ./pytest-junit.xml
compile-all-windows:
runs-on: "windows-latest"
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction
- name: Compile all
shell: bash
run: poetry run python scripts/compile_all_examples.py
env:
PYTHONUTF8: 1
- name: Check diff
run: git diff --exit-code examples/ test_cases/
compile-all:
runs-on: "ubuntu-latest"
steps:
- name: Checkout source code
uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction --with cicd
- name: Start LocalNet
run: poetry run algokit localnet start
- name: Compile all
run: poetry run scripts/compile_all_examples.py
- name: Check diff
run: git diff --exit-code examples/ test_cases/