Skip to content

Fixing Windows

Fixing Windows #196

Workflow file for this run

name: test and release CI
on:
push:
branches:
- main
- '*.preview'
pull_request:
branches:
- main
- '*.preview'
jobs:
test:
runs-on: ubuntu-latest
container: ghcr.io/opencyphal/toxic:tx22.4.3
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: lint
run: tox -e lint
- name: test-nnvg
run: tox -e py311-nnvg
- name: test-doctest
run: tox -e py311-doctest,py311-rstdoctest
- name: test-pytest
run: tox -e py311-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/py311-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-coverage-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/py311-test/tmp/
- name: set-environment
run: |
echo NUNAVUT_MAJOR_MINOR_VERSION=$(./version_check_nunavut --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/[email protected]
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/py311-test/tmp/xunit-result.xml
- name: report-pr
if: ${{ github.event_name == 'pull_request' }}
uses: SonarSource/[email protected]
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/py311-test/tmp/xunit-result.xml
compat-test-python3-windows-and-mac:
strategy:
matrix:
python3-version: ['11', '12', '13']
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', '13']
runs-on: ubuntu-latest
container: ghcr.io/opencyphal/toxic:tx22.4.3
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:
architecture: [native32, native]
compiler: [gcc, clang]
exclude:
- architecture: native32
compiler: clang
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: verify
# We're using Ninja multi-config so we only have to configure once for all build types
working-directory: verification
run: |
cmake -DNUNAVUT_EXTRA_GENERATOR_ARGS=--embed-auditing-info --preset config-${{ matrix.compiler }}-${{ matrix.architecture }}-c-11
cmake --build --preset build-${{ matrix.compiler }}-${{ matrix.architecture }}-c-11-release
cmake --build --preset build-${{ matrix.compiler }}-${{ matrix.architecture }}-c-11-debugasan
language-verification-cpp:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.10
strategy:
matrix:
architecture: [native32, native]
compiler: [gcc, clang]
language: [cpp-14, cpp-17, cpp-20]
exclude:
- architecture: native32
compiler: clang
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: verify
working-directory: verification
run: |
cmake -DNUNAVUT_EXTRA_GENERATOR_ARGS=--embed-auditing-info --preset config-${{ matrix.compiler }}-${{ matrix.architecture }}-${{ matrix.language }}
cmake --build --preset build-${{ matrix.compiler }}-${{ matrix.architecture }}-${{ matrix.language }}-debugasan
cmake --build --preset build-${{ matrix.compiler }}-${{ matrix.architecture }}-${{ matrix.language }}-release
language-verification-c-clang-native-extra:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.10
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: verify
working-directory: verification
run: |
cmake -DNUNAVUT_EXTRA_GENERATOR_ARGS="--enable-override-variable-array-capacity;--embed-auditing-info" --preset config-clang-native-c-11
cmake --build --preset build-clang-native-c-11-debugcov --target cov_all
- name: upload-verification-coverage-reports
uses: actions/upload-artifact@v4
with:
name: verification-c-coverage-reports
path: verification/build/DebugCov/coverage/*
language-verification-cpp-clang-native-extra:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toolshed:ts22.4.10
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: verify
working-directory: verification
run: |
cmake -DNUNAVUT_EXTRA_GENERATOR_ARGS="--enable-override-variable-array-capacity;--embed-auditing-info" --preset config-clang-native-cpp-20
cmake --build --preset build-clang-native-cpp-20-debugcov --target cov_all
- name: upload-verification-coverage-reports
uses: actions/upload-artifact@v4
with:
name: verification-cpp-coverage-reports
path: verification/build/DebugCov/coverage/*
language-verification-python:
runs-on: ubuntu-latest
needs: test
container: ghcr.io/opencyphal/toxic:tx22.4.3
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: verify
run: |
cd verification/python
nox
env:
FORCE_COLOR: 1
continue-on-error: true