Coverage up #113
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
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.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.8 | |
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.8 | |
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.8 | |
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-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 |