Combine coverage before upload #728
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 smbprotocol | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- CHANGELOG.md | |
- LICENSE | |
- README.md | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- CHANGELOG.md | |
- LICENSE | |
- README.md | |
release: | |
types: | |
- published | |
jobs: | |
build: | |
name: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Select python | |
uses: actions/setup-python@v4 | |
- name: Build smbprotocol | |
run: | | |
python -m pip install build | |
python -m build | |
- name: Install smbprotocol | |
run: | | |
pip install ./dist/*.whl | |
- name: Upload built smbprotocol | |
uses: actions/upload-artifact@v3 | |
with: | |
name: artifact | |
path: ./dist/* | |
test: | |
name: test | |
needs: | |
- build | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- macOS-latest | |
- windows-2019 | |
- windows-2022 | |
python-version: | |
- 3.7 | |
- 3.8 | |
- 3.9 | |
- '3.10' | |
- '3.11' | |
python-arch: | |
- x86 | |
- x64 | |
exclude: | |
- os: ubuntu-latest | |
python-arch: x86 | |
- os: macOS-latest | |
python-arch: x86 | |
- os: windows-2019 | |
python-arch: x86 | |
- os: windows-2019 | |
python-version: 3.7 | |
- os: windows-2019 | |
python-version: 3.8 | |
- os: windows-2019 | |
python-version: 3.9 | |
- os: windows-2019 | |
python-version: '3.10' | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: ${{ matrix.python-arch }} | |
- name: Extract OS name | |
shell: bash | |
run: | | |
echo NAME=$( echo '${{ matrix.os }}' | tr '-' ' ' | awk '{print $1}' ) | |
echo "name=${NAME}" >> $GITHUB_OUTPUT | |
id: os | |
- name: Test | |
shell: bash | |
run: | | |
if [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then | |
build_helpers/run-ci.sh requirements lint start-server tests | |
else | |
sudo -E build_helpers/run-ci.sh requirements lint start-server tests | |
fi | |
env: | |
PYTEST_ADDOPTS: --color=yes | |
- name: Stop SMV Server | |
if: always() | |
shell: bash | |
run: | | |
if [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then | |
build_helpers/run-ci.sh stop-server | |
else | |
sudo -E build_helpers/run-ci.sh stop-server | |
fi | |
env: | |
PYTEST_ADDOPTS: --color=yes | |
- name: Upload Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Unit Test Results (${{ matrix.os }} ${{ matrix.python-version }} ${{ matrix.python-arch }}) | |
path: ./reports/junit/* | |
- name: Upload Coverage Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Coverage Results (${{ matrix.os }} ${{ matrix.python-version }} ${{ matrix.python-arch }}) | |
path: ./reports/coverage/* | |
tests_done: | |
name: Tests done | |
runs-on: ubuntu-latest | |
needs: | |
- build | |
- test | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v3 | |
- name: Select python | |
uses: actions/setup-python@v4 | |
- name: Download all coverage reports | |
uses: actions/download-artifact@v3 | |
with: | |
path: reports/coverage | |
- name: Move coverage data to the root folder | |
run: find reports/coverage -type f -exec mv '{}' reports/coverage/ \; | |
- name: Combine coverage | |
shell: bash | |
run: | | |
if [ "$(expr substr $(uname -s) 1 5)" == "MINGW" ]; then | |
build_helpers/run-ci.sh requirements coverage | |
else | |
sudo -E build_helpers/run-ci.sh requirements combine-coverage | |
fi | |
- name: Upload Coverage to codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
files: ./reports/coverage/coverage.xml | |
- name: Upload Coverage Results | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Coverage Results Total | |
path: ./reports/coverage/coverage.xml | |
publish: | |
name: publish | |
needs: | |
- tests_done | |
runs-on: ubuntu-latest | |
permissions: | |
# IMPORTANT: this permission is mandatory for trusted publishing | |
id-token: write | |
steps: | |
- uses: actions/download-artifact@v3 | |
with: | |
name: artifact | |
path: ./dist | |
- name: Publish | |
if: startsWith(github.ref, 'refs/tags/v') | |
uses: pypa/gh-action-pypi-publish@release/v1 |