-
Notifications
You must be signed in to change notification settings - Fork 15
148 lines (115 loc) · 3.63 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
140
141
142
143
144
145
146
147
148
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:
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
- name: Compile all
run: poetry run scripts/compile_all_examples.py
- name: Check for any changes
run: test -z "$(git status --porcelain examples/ test_cases/)"
- name: Show changed files summary
if: failure()
run: git status --porcelain examples/ test_cases/
- name: Show diff
if: failure()
run: git diff examples/ test_cases/
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
# simple diff check here as line endings mess with git status
- name: Check diff
run: git diff --exit-code examples/ test_cases/