[PATCH] specialize exception hear (- WIP #154 -) #794
Workflow file for this run
This file contains hidden or 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: CI | |
on: # yamllint disable-line rule:truthy | |
push: | |
branches: | |
- master | |
- stable | |
- HOTFIX-* | |
tags: | |
- v* | |
pull_request: | |
types: | |
- opened | |
- edited | |
- reopened | |
- synchronize | |
- ready_for_review | |
# Declare default permissions as none. | |
permissions: {} | |
jobs: | |
BUILD: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: github.repository == 'reactive-firewall/multicast' | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
env: | |
LANG: "en_US.UTF-8" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Pre-Clean | |
id: clean | |
run: make -j1 -f Makefile purge 2>/dev/null || true ; | |
- name: Test Build | |
id: build | |
run: make -j1 -f Makefile build ; | |
- name: Post-Clean | |
id: post | |
run: make -j1 -f Makefile purge || true ; | |
BOOTSTRAP: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ !cancelled() }} | |
needs: BUILD | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
timeout-minutes: 5 | |
continue-on-error: ${{ matrix.experimental }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
lang-var: ["de.utf-8", "jp.utf-8"] | |
experimental: [true] | |
include: | |
- python-version: "3.10" | |
lang-var: "de.utf-8" | |
experimental: false | |
- python-version: "3.10" | |
lang-var: "jp.utf-8" | |
experimental: false | |
- python-version: "3.10" | |
lang-var: "en_US.utf-8" | |
experimental: false | |
- python-version: "3.11" | |
lang-var: "en_US.utf-8" | |
experimental: false | |
- python-version: "3.11" | |
lang-var: "en_US.utf-8" | |
experimental: false | |
- python-version: "3.12" | |
lang-var: "en_US.utf-8" | |
experimental: false | |
env: | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: ${{ matrix.lang-var }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up dependencies | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install -r ./requirements.txt ; | |
- name: Pre-build | |
id: bootstrap | |
run: | | |
make -j1 -f Makefile clean || true ; | |
make -j1 -f Makefile build ; | |
shell: bash | |
- name: Summerize Building | |
id: sumerize-py-build | |
run: | | |
echo "- Building works on python version ${{ matrix.python-version }}" >> $GITHUB_STEP_SUMMARY | |
if: ${{ success() }} | |
shell: bash | |
- name: Run Tests | |
id: test-install | |
run: make -j1 -f Makefile user-install ; | |
shell: bash | |
- name: Summerize Install | |
id: sumerize-user-install | |
run: | | |
echo "- User Installing works on python version ${{ matrix.python-version }}" >> $GITHUB_STEP_SUMMARY | |
if: ${{ success() }} | |
shell: bash | |
- name: Test Info | |
id: test-info | |
run: python -m setup --name --version --license || true ; | |
- name: Post-Clean | |
id: post | |
run: | | |
make -j1 -f Makefile purge || true ; | |
make -j1 -f Makefile clean || true ; | |
if: ${{ always() }} | |
shell: bash | |
MATS: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ !cancelled() }} | |
needs: BUILD | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
timeout-minutes: 8 | |
strategy: | |
matrix: | |
python-version: ["3.10", "3.11", "3.12"] | |
env: | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: "en_US.utf-8" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies for ${{ matrix.python-version }} | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install -r ./requirements.txt ; | |
pip install -r ./tests/requirements.txt || true ; | |
pip install --upgrade -r ./docs/requirements.txt || true ; | |
- name: Pre-Clean | |
id: clean | |
run: make -j1 -f Makefile clean || true ; | |
- name: Run Tests for python ${{ matrix.python-version }} | |
id: tests | |
run: make -j1 -f Makefile test ; | |
- name: Summerize MATs for python ${{ matrix.python-version }} | |
id: sumerize-mats | |
run: | | |
echo "- MATS works on python version ${{ matrix.python-version }}" >> $GITHUB_STEP_SUMMARY | |
if: ${{ success() }} | |
- name: Post-Clean | |
id: post | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ always() }} | |
COVERAGE: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ success() }} | |
needs: [BUILD, MATS] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 10 | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ["3.10", "3.11", "3.12", "3.13"] | |
env: | |
OS: ${{ matrix.os }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: "en_US.utf-8" | |
COVERAGE_RCFILE: ./.coveragerc | |
COV_CORE_SOURCE: ./ | |
COV_CORE_CONFIG: ./.coveragerc | |
COV_CORE_DATAFILE: ./coverage.xml | |
CODECLIMATE_REPO_TOKEN: ${{ secrets.CODECLIMATE_TOKEN }} | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
DEEPSOURCE_DSN: ${{ secrets.DEEPSOURCE_DSN }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Fix braindead windows ${{ matrix.python-version }} on ${{ matrix.os }} | |
if: ${{ !cancelled() && runner.os == 'Windows' }} | |
run: python -m pip install --upgrade pip | |
- name: Install dependencies for python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install --upgrade -r ./requirements.txt ; | |
pip install --upgrade -r ./tests/requirements.txt || true ; | |
pip install --upgrade -r ./docs/requirements.txt || true ; | |
- name: Install code-climate tools for ${{ matrix.python-version }} on ${{ matrix.os }} | |
if: ${{ !cancelled() && runner.os == 'Linux' }} | |
shell: bash | |
run: | | |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter || true ; | |
chmod +x ./cc-test-reporter 2>/dev/null || true ; | |
./cc-test-reporter before-build || true ; | |
- name: Install deepsource tools for ${{ matrix.python-version }} on ${{ matrix.os }} | |
if: ${{ !cancelled() && runner.os == 'Linux' }} | |
shell: bash | |
run: | | |
(curl https://deepsource.io/cli | sh) || true ; | |
- name: Pre-Clean | |
id: clean | |
run: make -j1 -f Makefile clean || true ; | |
- name: Generate Coverage for py${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -f Makefile test-pytest >> $GITHUB_STEP_SUMMARY ; | |
- name: Upload Python ${{ matrix.python-version }} coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./coverage.xml | |
directory: . | |
flags: multicast,${{ matrix.os }},${{ matrix.python-version }} | |
name: multicast-github-${{ matrix.os }}-${{ matrix.python-version }} | |
verbose: true | |
fail_ci_if_error: false | |
- name: Upload Python ${{ matrix.python-version }} Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Test-Report-${{ matrix.os }}-${{ matrix.python-version }} | |
path: ./test-reports/ | |
if-no-files-found: ignore | |
- name: code-climate for ${{ matrix.python-version }} on ${{ matrix.os }} | |
if: ${{ !cancelled() && runner.os == 'Linux' }} | |
shell: bash | |
run: | | |
./cc-test-reporter after-build --exit-code 0 || true ; | |
- name: deepsource for ${{ matrix.python-version }} on ${{ matrix.os }} | |
if: ${{ !cancelled() && runner.os == 'Linux' }} | |
shell: bash | |
run: | | |
./bin/deepsource report --analyzer test-coverage --key python --value-file ./coverage.xml 2>/dev/null || true ; | |
- name: Post-Clean | |
id: post | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ always() }} | |
STYLE: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ success() }} | |
needs: [BUILD, MATS] | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
timeout-minutes: 10 | |
env: | |
PYTHON_VERSION: '3.13' | |
LANG: "en_US.utf-8" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
- name: Install dependencies for python Linters | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.2"; | |
pip install --upgrade -r ./requirements.txt ; | |
pip install --upgrade -r ./tests/requirements.txt || true ; | |
pip install --upgrade -r ./docs/requirements.txt || true ; | |
- name: Pre-Clean | |
id: clean | |
run: make -j1 -f Makefile clean || true ; | |
- name: Testing Style | |
id: style | |
run: make -j1 -f Makefile test-style >> $GITHUB_STEP_SUMMARY ; | |
shell: bash | |
- name: Post-Clean | |
id: post | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ always() }} | |
INTEGRATION: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ success() }} | |
needs: [MATS, COVERAGE] | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 10 | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
python-version: ["3.10", "3.11", "3.12", "3.13"] | |
env: | |
OS: ${{ matrix.os }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: "en_US.utf-8" | |
LC_CTYPE: "en_US.utf-8" | |
COVERAGE_RCFILE: ./.coveragerc | |
COV_CORE_SOURCE: ./ | |
COV_CORE_CONFIG: ./.coveragerc | |
COV_CORE_DATAFILE: .coverage | |
CODECLIMATE_REPO_TOKEN: ${{ secrets.CODECLIMATE_TOKEN }} | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies for python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install --upgrade -r ./requirements.txt ; | |
pip install --upgrade -r ./tests/requirements.txt || true ; | |
pip install --upgrade -r ./docs/requirements.txt || true ; | |
- name: Install Darwin code-climate tools for ${{ matrix.python-version }} | |
if: ${{ !cancelled() && runner.os != 'Linux' }} | |
run: | | |
if [ "$OS" == "macos-latest" ] ; then curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-darwin-amd64 > ./cc-test-reporter || true ; fi ; | |
if [ "$OS" == "macos-latest" ] ; then chmod +x ./cc-test-reporter 2>/dev/null || true ; fi | |
if [ "$OS" == "macos-latest" ] ; then ./cc-test-reporter before-build || true ; fi | |
shell: bash | |
- name: Install Linux code-climate tools for ${{ matrix.python-version }} | |
if: ${{ !cancelled() && runner.os == 'Linux' }} | |
run: | | |
curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter || curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-arm64 > ./cc-test-reporter || true ; | |
chmod +x ./cc-test-reporter 2>/dev/null || true ; | |
./cc-test-reporter before-build || true ; | |
- name: Pre-Clean | |
id: clean-prep | |
run: make -j1 -f Makefile clean ; | |
- name: Pre-build for Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -j1 -f Makefile build ; | |
if: ${{ success() }} | |
- name: Pre-install for Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -j1 -f Makefile user-install || true ; | |
if: ${{ success() }} | |
- name: Re-Generate Coverage for py${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
make -j1 -f Makefile test-pytest ; | |
cp -vf ./coverage.xml ./test-reports/coverage.xml || true ; | |
shell: bash | |
- name: Generate Extra Coverage for py${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
hash -p ./.github/tool_shlock_helper.sh shlock ; | |
./tests/check_integration_coverage || echo "::warning file=tests/check_integration_coverage,line=1,endLine=1,title=SKIPPED::SKIP Integration Tests." ; | |
shell: bash | |
- name: Upload Python ${{ matrix.python-version }} integration coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./test-reports/coverage_supplement.xml | |
directory: . | |
flags: multicast,${{ matrix.os }},${{ matrix.python-version }} | |
name: multicast-github-${{ matrix.os }}-${{ matrix.python-version }} | |
verbose: true | |
fail_ci_if_error: false | |
- name: Upload Extra Python ${{ matrix.python-version }} Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Integration-Test-Report-${{ matrix.os }}-${{ matrix.python-version }} | |
path: ./test-reports/ | |
if-no-files-found: ignore | |
- name: code-climate for ${{ matrix.python-version }} | |
if: ${{ !cancelled() && runner.os != 'Linux' }} | |
run: | | |
if [ "$OS" == "macos-latest" ] ; then ./cc-test-reporter after-build --exit-code 0 || true ; else echo "::warning file=.github/workflows/Tests.yml,line=459,endLine=459,title=SKIPPED::SKIP Code-Climate" ; fi ; | |
- name: code-climate for ${{ matrix.python-version }} | |
if: ${{ !cancelled() && runner.os == 'Linux' }} | |
run: | | |
./cc-test-reporter after-build --exit-code 0 || true ; | |
- name: Upload Python ${{ matrix.python-version }} integration test results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./test-reports/junit.xml | |
directory: . | |
flags: multicast,${{ matrix.os }},${{ matrix.python-version }} | |
name: multicast-github-${{ matrix.os }}-${{ matrix.python-version }}-test-results | |
verbose: true | |
fail_ci_if_error: false | |
- name: Post-purge | |
id: post-uninstall | |
run: make -j1 -f Makefile purge || true ; | |
if: ${{ !cancelled() }} | |
- name: Post-Clean | |
id: post-end | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ !cancelled() }} | |
EXTRAS-FOR-SETUP: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ success() }} | |
needs: [BOOTSTRAP, MATS] | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
timeout-minutes: 10 | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest] | |
python-version: ["3.10", "3.11", "3.12", "3.13"] | |
env: | |
OS: ${{ matrix.os }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: "en_US.utf-8" | |
LC_CTYPE: "en_US.utf-8" | |
COVERAGE_RCFILE: ./.coveragerc | |
COV_CORE_SOURCE: ./ | |
COV_CORE_CONFIG: ./.coveragerc | |
COV_CORE_DATAFILE: .coverage | |
CODECLIMATE_REPO_TOKEN: ${{ secrets.CODECLIMATE_TOKEN }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies for python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install -r ./requirements.txt ; | |
pip install -r ./tests/requirements.txt || true ; | |
- name: Pre-Clean | |
id: clean-prep | |
run: make -j1 -f Makefile clean ; | |
- name: Pre-build for Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -j1 -f Makefile build ; | |
if: ${{ success() }} | |
- name: Pre-install for Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -j1 -f Makefile user-install || true ; | |
if: ${{ success() }} | |
- name: Generate Extra Legacy Setup Coverage for py${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
hash -p ./.github/tool_shlock_helper.sh shlock ; | |
./tests/check_legacy_setup_coverage || echo "::warning file=tests/check_legacy_setup_coverage,line=1,endLine=1,title=SKIPPED::SKIP Legacy Setup.py Tests." ; | |
if: ${{ !cancelled() }} | |
- name: Upload Python ${{ matrix.python-version }} Legacy Setup.py coverage to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: ./test-reports/coverage_setup.xml | |
directory: . | |
flags: multicast,${{ matrix.os }},${{ matrix.python-version }} | |
name: multicast-github-${{ matrix.os }}-${{ matrix.python-version }} | |
verbose: true | |
fail_ci_if_error: false | |
- name: Upload Extra Python ${{ matrix.python-version }} Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Legacy_Setup-Test-Report-${{ matrix.os }}-${{ matrix.python-version }} | |
path: ./test-reports/ | |
if-no-files-found: ignore | |
- name: Post-purge | |
id: post-uninstall | |
run: make -j1 -f Makefile purge || true ; | |
if: ${{ !cancelled() }} | |
- name: Post-Clean | |
id: post-end | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ !cancelled() }} | |
EXTRAS-FOR-PIP: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ !cancelled() }} | |
needs: [BOOTSTRAP, MATS] | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
timeout-minutes: 10 | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ["3.10", "3.11", "3.12", "3.13"] | |
env: | |
OS: 'ubuntu-latest' | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: "en_US.utf-8" | |
LC_CTYPE: "en_US.utf-8" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install dependencies for python ${{ matrix.python-version }} | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1" "pip-licenses>=5.0.0"; | |
pip install -r ./requirements.txt ; | |
pip install -r ./tests/requirements.txt || true ; | |
pip install --upgrade -r ./docs/requirements.txt || true ; | |
- name: Pre-Clean | |
id: clean-prep | |
run: make -j1 -f Makefile clean ; | |
- name: Test Dependencies with py${{ matrix.python-version }} | |
run: | | |
hash -p ./.github/tool_shlock_helper.sh shlock ; export TMPDIR=./ ; | |
./tests/check_pip ; | |
shell: bash | |
if: ${{ !cancelled() }} | |
- name: Post-purge | |
id: post-uninstall | |
run: make -j1 -f Makefile purge || true ; | |
if: ${{ !cancelled() }} | |
- name: Post-Clean | |
id: post-end | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ !cancelled() }} | |
DOCS: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ !cancelled() }} | |
needs: [MATS, COVERAGE, EXTRAS-FOR-SETUP, EXTRAS-FOR-PIP] | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
timeout-minutes: 10 | |
strategy: | |
matrix: | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
python-version: ["3.10", "3.11", "3.12"] | |
env: | |
OS: ${{ matrix.os }} | |
PYTHON_VERSION: ${{ matrix.python-version }} | |
LANG: "en_US.utf-8" | |
LC_CTYPE: "en_US.utf-8" | |
DOCS_BUILD_REF: ${{ github.sha }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Fix braindead windows ${{ matrix.python-version }} on ${{ matrix.os }} | |
if: ${{ !cancelled() && runner.os == 'Windows' }} | |
run: python -m pip install --upgrade pip | |
- name: Install dependencies for python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install -r ./requirements.txt ; | |
pip install -r ./tests/requirements.txt || true ; | |
- name: Pre-Clean | |
id: clean-prep | |
run: make -j1 -f Makefile clean ; | |
- name: Pre-build for Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -j1 -f Makefile build ; | |
if: ${{ success() }} | |
- name: Generate documentation with py${{ matrix.python-version }} on ${{ matrix.os }} | |
run: make -j1 -f Makefile build-docs 2>&1 >> $GITHUB_STEP_SUMMARY ; | |
if: ${{ !cancelled() }} | |
- name: Lint documentation | |
run: | | |
pip install --upgrade sphinx-lint | |
sphinx-lint docs/ 2>&1 >> $GITHUB_STEP_SUMMARY || true ; | |
if: ${{ !cancelled() }} | |
- name: Upload Docs Artifact with Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Multicast-Documentation-${{ env.GITHUB_SHA }}-${{ matrix.os }}-${{ matrix.python-version }} | |
path: ./docs/www/ | |
if-no-files-found: ignore | |
- name: Post-purge | |
id: post-uninstall | |
run: make -j1 -f Makefile purge || true ; | |
if: ${{ !cancelled() }} | |
- name: Post-Clean | |
id: post-end | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ !cancelled() }} | |
TOX: | |
permissions: | |
actions: read | |
contents: read | |
statuses: write | |
packages: none | |
pull-requests: read | |
security-events: none | |
if: ${{ success() }} | |
needs: [MATS, STYLE, COVERAGE, INTEGRATION, DOCS] | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
env: | |
OS: 'ubuntu-latest' | |
PYTHON_VERSION: '3.12' | |
LANG: 'en_US.utf-8' | |
CODECLIMATE_REPO_TOKEN: ${{ secrets.CODECLIMATE_TOKEN }} | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
- name: Prep Testing Tox | |
id: prep-tox | |
run: | | |
if [ "$OS" == "ubuntu-latest" ] ; then { apt-get update || true ;} ; wait ; { apt-get install --assume-yes python3.10 python3.11 || echo "::warning file=.github/workflows/Tests.yml,line=621,endLine=624,title=SKIPPED::SKIP Enhanced TOX Tests." ;} ; wait ; fi | |
- name: Install dependencies for Tox | |
run: | | |
pip install --upgrade "pip>=22.0" "setuptools>=75.0" "wheel>=0.44" "build>=1.2.1"; | |
pip install --upgrade -r ./requirements.txt ; | |
pip install --upgrade -r ./tests/requirements.txt || true ; | |
pip install --upgrade -r ./docs/requirements.txt || true ; | |
- name: Pre-Clean | |
id: clean | |
run: make -j1 -f Makefile clean || true ; | |
- name: Testing Tox | |
run: make -j1 -f Makefile test-tox || true ; | |
- name: Post-Clean | |
id: post | |
run: make -j1 -f Makefile clean || true ; | |
if: ${{ !cancelled() }} |