Skip to content

Python package

Python package #171

# 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