Merge remote-tracking branch 'origin/3.0.preview' into sshirokov/3.0.… #122
Workflow file for this run
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 | ||
- *.preview | ||
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 |