mirror of
https://github.com/Telecominfraproject/oopt-gnpy-api.git
synced 2025-10-29 01:02:18 +00:00
143 lines
3.4 KiB
YAML
143 lines
3.4 KiB
YAML
on:
|
|
push:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
|
|
name: GNPY-API-CI
|
|
|
|
jobs:
|
|
linters:
|
|
name: Lint Code
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: '3.10'
|
|
- name: Install dependencies
|
|
run: |
|
|
pip install tox
|
|
- name: Run linters
|
|
run: |
|
|
tox -e linters
|
|
|
|
build:
|
|
name: Tox test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: fedora-python/tox-github-action@v37.0
|
|
with:
|
|
tox_env: ${{ matrix.tox_env }}
|
|
dnf_install: ${{ matrix.dnf_install }}
|
|
- uses: codecov/codecov-action@v3.1.1
|
|
if: ${{ endswith(matrix.tox_env, '-cover') }}
|
|
with:
|
|
files: ${{ github.workspace }}/cover/coverage.xml
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
tox_env:
|
|
- py38
|
|
- py39
|
|
- py310
|
|
- py311
|
|
- py312-cover
|
|
include:
|
|
- tox_env: docs
|
|
dnf_install: graphviz
|
|
|
|
release-build:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && github.repository_owner == 'Telecominfraproject' }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: build release distributions
|
|
run: |
|
|
python -m pip install build
|
|
python -m build
|
|
|
|
- name: upload windows dists
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: release-dists
|
|
path: dist/
|
|
|
|
pypi-publish:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- release-build
|
|
permissions:
|
|
id-token: write
|
|
|
|
steps:
|
|
- name: Retrieve release distributions
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: release-dists
|
|
path: dist/
|
|
|
|
- name: Publish release distributions to PyPI
|
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
|
|
other-platforms:
|
|
name: Tests on other platforms
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python_version }}
|
|
- run: |
|
|
pip install --editable .[tests]
|
|
pytest -vv
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: windows-2019
|
|
python_version: "3.10"
|
|
- os: windows-2022
|
|
python_version: "3.11"
|
|
- os: windows-2022
|
|
python_version: "3.12"
|
|
- os: macos-13
|
|
python_version: "3.12"
|
|
- os: macos-14
|
|
python_version: "3.12"
|
|
|
|
paywalled-platforms:
|
|
name: Tests on paywalled platforms
|
|
if: github.repository_owner == 'Telecominfraproject'
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/setup-python@v4
|
|
with:
|
|
python-version: ${{ matrix.python_version }}
|
|
- run: |
|
|
pip install --editable .[tests]
|
|
pytest -vv
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- os: macos-13-xlarge # Apple M1 CPU
|
|
python_version: "3.12"
|