Python package #171
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
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
name: Python package | |
on: | |
push: | |
branches: | |
- master | |
- develop | |
- check/* | |
- release/* | |
pull_request: | |
types: [assigned, opened, synchronize, reopened] | |
schedule: | |
- cron: "15 03 * * 6" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.7, 3.8, 3.9, '3.10', 3.11] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install prerequisites | |
run: | | |
python -m pip install --upgrade pip | |
python -m pip install tox | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.5.1 | |
- name: Lint with flake8 | |
run: | | |
tox -e flakes | |
- name: Test with tox & pytest | |
run: | | |
tox -e py -- --no-ceedling | |
build: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.11] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install prerequisites | |
run: | | |
python -m pip install --upgrade pip | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.5.1 | |
- name: Build package | |
run: | | |
poetry build --format wheel | |
- name: Upload wheel | |
uses: actions/upload-artifact@v3 | |
with: | |
name: crcengine-wheel | |
path: dist/crcengine-*.whl | |
code_gen: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.7, 3.9, 3.11] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.5.1 | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: 2.6 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
gem install ceedling | |
- name: Run code-gen tests | |
run: | | |
poetry install --with dev | |
poetry run pytest -s -v tests/test_code_gen.py | |
docs: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: [3.11] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.5.1 | |
- name: Install prerequisites | |
run: | | |
python -m pip install --upgrade pip | |
poetry install --with docs | |
- name: Generate documentation using sphinx | |
run: | | |
poetry run make -C docs html | |
- name: Save HTML docs | |
uses: actions/upload-artifact@v3 | |
with: | |
name: crcengine-docs-html | |
path: docs/build/html |