Skip to content

Merge remote-tracking branch 'origin/3.0.preview' into sshirokov/3.0.… #122

Merge remote-tracking branch 'origin/3.0.preview' into sshirokov/3.0.…

Merge remote-tracking branch 'origin/3.0.preview' into sshirokov/3.0.… #122

Workflow file for this run

name: test and release CI
on:
push:
branches:
- main
- *.preview

Check failure on line 7 in .github/workflows/test.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/test.yml

Invalid workflow file

You have an error in your yaml syntax on line 7
pull_request:
branches:
- main
- *.preview
jobs:
test:
runs-on: ubuntu-latest
container: ghcr.io/opencyphal/toxic:tx22.4.2
steps:
- uses: actions/checkout@v4
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@v4
with:
name: coverage-reports
path: .tox/report/tmp/*
- name: upload-xunit-results
uses: actions/upload-artifact@v4
with:
name: xunit-results
path: .tox/py310-test/tmp/xunit-result.xml
- name: upload-package
uses: actions/upload-artifact@v4
with:
name: pypi-package
path: .tox/package/dist/*
sonar:
runs-on: ubuntu-latest
needs: test
steps:
- uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: download-converage-reports
uses: actions/download-artifact@v4
with:
name: coverage-reports
path: .tox/report/tmp/
- name: download-xunit-results
uses: actions/download-artifact@v4
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.token=${{ env.SONAR_TOKEN }}
-Dsonar.buildString=${{ env.GITHUB_RUN_ID }}
-Dsonar.projectVersion=${{ env.NUNAVUT_MAJOR_MINOR_VERSION }}
-Dsonar.python.version=python3.11
-Dsonar.python.coverage.reportPaths=.tox/report/tmp/coverage.xml
-Dsonar.python.xunit.reportPath=.tox/py310-test/tmp/xunit-result.xml
- 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.token=${{ env.SONAR_TOKEN }}
-Dsonar.buildString=${{ env.GITHUB_RUN_ID }}
-Dsonar.projectVersion=${{ env.NUNAVUT_MAJOR_MINOR_VERSION }}
-Dsonar.python.version=python3.11
-Dsonar.python.coverage.reportPaths=.tox/report/tmp/coverage.xml
-Dsonar.python.xunit.reportPath=.tox/py310-test/tmp/xunit-result.xml
compat-test-python3-windows-and-mac:
strategy:
matrix:
python3-version: ['11','12']
python3-platform: ['windows-latest', 'macos-latest']
runs-on: ${{ matrix.python3-platform }}
needs: test
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: setup python
uses: actions/setup-python@v5
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: ['8', '9', '10', '11', '12']
runs-on: ubuntu-latest
container: ghcr.io/opencyphal/toxic:tx22.4.2
needs: test
steps:
- uses: actions/checkout@v4
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.10
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@v4
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.10
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@v4
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.10
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@v4
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-cpp-20:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.10
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@v4
with:
submodules: true
- name: verify
run: |
.github/verify.py --override .github/verify_global.ini \
--build-type ${{ matrix.build_type }} \
--language-standard c++20 \
--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.2
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: verify
run: |
cd verification/python
nox
env:
FORCE_COLOR: 1