Skip to content

Add Python codegen

Add Python codegen #42

Workflow file for this run

name: test and release CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
container: ghcr.io/opencyphal/toxic:tx22.4.1
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: lint
run: tox -e lint
- name: test-nnvg
run: tox -e py310-nnvg
- name: test-doctest
run: tox -e py310-doctest,py310-rstdoctest
- name: test-pytest
run: tox -e py310-test
- name: test-report
run: tox -e report
- name: package
run: tox -e package
- name: upload-coverage-reports
uses: actions/upload-artifact@v3
with:
name: coverage-reports
path: .tox/report/tmp/*
- name: upload-xunit-results
uses: actions/upload-artifact@v3
with:
name: xunit-results
path: .tox/py310-test/tmp/xunit-result.xml
- name: upload-package
uses: actions/upload-artifact@v3
with:
name: pypi-package
path: .tox/package/dist/*
sonar:
runs-on: ubuntu-latest
needs: test
container: sonarsource/sonar-scanner-cli
steps:
- uses: actions/checkout@v3
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: download-converage-reports
uses: actions/download-artifact@v3
with:
name: coverage-reports
path: .tox/report/tmp/
- name: download-xunit-results
uses: actions/download-artifact@v3
with:
name: xunit-results
path: .tox/py310-test/tmp/
- name: set-environment
run: |
echo NUNAVUT_MAJOR_MINOR_VERSION=$(./.github/verify.py --major-minor-version-only) >> $GITHUB_ENV
- name: verify tox artifacts
run: ls -R
working-directory: .tox
- name: report-release
if: ${{ github.event_name != 'pull_request' }}
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }}
with:
args: >
-Dsonar.login=${{ env.SONAR_TOKEN }}
-Dsonar.buildString=${{ env.GITHUB_RUN_ID }}
-Dsonar.projectVersion=${{ env.NUNAVUT_MAJOR_MINOR_VERSION }}
-Dsonar.python.version=python3.10
- name: report-pr
if: ${{ github.event_name == 'pull_request' }}
uses: sonarsource/sonarcloud-github-action@master
env:
SONAR_TOKEN: "6526e88c286672a7852fea52056c4b6ea583aaf7"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
args: >
-Dsonar.login=${{ env.SONAR_TOKEN }}
-Dsonar.buildString=${{ env.GITHUB_RUN_ID }}
-Dsonar.projectVersion=${{ env.NUNAVUT_MAJOR_MINOR_VERSION }}
-Dsonar.python.version=python3.10
compat-test-python3-windows-and-mac:
strategy:
matrix:
python3-version: ['10','11']
python3-platform: ['windows-latest', 'macos-latest']
runs-on: ${{ matrix.python3-platform }}
needs: test
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: setup python
uses: actions/setup-python@v4
with:
python-version: 3.${{ matrix.python3-version }}
- name: setup tox
run: pip3 install tox
- name: python3.${{ matrix.python3-version }} test
run: tox -e py3${{ matrix.python3-version }}-nnvg,py3${{ matrix.python3-version }}-test
compat-test-python3-ubuntu:
strategy:
matrix:
python3-version: ['7', '8', '9', '10', '11']
runs-on: ubuntu-latest
container: ghcr.io/opencyphal/toxic:tx22.4.1
needs: test
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: python3.${{ matrix.python3-version }} test
run: tox -e py3${{ matrix.python3-version }}-nnvg,py3${{ matrix.python3-version }}-test
language-verification-c:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.1
strategy:
matrix:
build_type: [Debug, Release, MinSizeRel]
architecture: [native32, native64]
compiler: [gcc, clang]
endianness: [any, little]
flag: [--none, --enable-ovr-var-array, --disable-asserts]
exclude:
- build_type: Debug
flag: --disable-asserts
- build_type: Release
flag: --disable-asserts
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: verify
run: |
.github/verify.py --override .github/verify_global.ini \
--build-type ${{ matrix.build_type }} \
--language c \
--platform ${{ matrix.architecture }} \
--toolchain-family ${{ matrix.compiler }} \
--endianness ${{ matrix.endianness }} \
${{ matrix.flag }}
language-verification-cpp-14:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.1
strategy:
matrix:
build_type: [Debug, Release, MinSizeRel]
architecture: [native32, native64]
compiler: [gcc, clang]
endianness: [any, little]
flag: [--none, --enable-ovr-var-array, --disable-asserts]
exclude:
- build_type: Debug
flag: --disable-asserts
- build_type: Release
flag: --disable-asserts
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: verify
run: |
.github/verify.py --override .github/verify_global.ini \
--build-type ${{ matrix.build_type }} \
--language-standard c++14 \
--language cpp \
--platform ${{ matrix.architecture }} \
--toolchain-family ${{ matrix.compiler }} \
--endianness ${{ matrix.endianness }} \
${{ matrix.flag }}
language-verification-cpp-17:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.1
strategy:
matrix:
build_type: [Debug, Release, MinSizeRel]
architecture: [native32, native64]
compiler: [gcc, clang]
endianness: [any, little]
flag: [--none, --enable-ovr-var-array, --disable-asserts]
exclude:
- build_type: Debug
flag: --disable-asserts
- build_type: Release
flag: --disable-asserts
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: verify
run: |
.github/verify.py --override .github/verify_global.ini \
--build-type ${{ matrix.build_type }} \
--language-standard c++17 \
--language cpp \
--platform ${{ matrix.architecture }} \
--toolchain-family ${{ matrix.compiler }} \
--endianness ${{ matrix.endianness }} \
${{ matrix.flag }}
language-verification-python:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toxic:tx22.4.1
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: verify
run: |
cd verification/python
nox