Make CI/CD compile-all step check for untracked files #1401
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.6" | |
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.6" | |
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.6" | |
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/ | |
- name: Check for untracked files | |
shell: bash | |
run: test -z "$(git status --porcelain 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.6" | |
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/ | |
- name: Check for untracked files | |
run: test -z "$(git status --porcelain examples/ test_cases/)" |