workflow,pytest: add new --error-on-skip
for pytest
#868
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: Tests | |
on: [pull_request, push] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
# Share the store between the workers speeds things up further | |
OSBUILD_TEST_STORE: /var/tmp/osbuild-test-store | |
jobs: | |
test_suite: | |
name: "Unittest" | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
test: | |
- parallel | |
- normal | |
environment: | |
- "py36" # RH8 | |
- "py39" # RH9 | |
- "py312" # latest fedora | |
steps: | |
- name: "Clone Repository" | |
uses: actions/checkout@v4 | |
- name: "Run" | |
uses: osbuild/containers/src/actions/privdocker@552e30cf1b4ed19c6ddaa57f96c342b3dff4227b | |
with: | |
image: ghcr.io/osbuild/osbuild-ci:latest-202409171558 | |
run: | | |
# Hacky replacement of container storage driver: | |
# The default overlayfs doesn't work in the runner, so let's change | |
# it to vfs for the local storage skopeo stage test. | |
sed -i 's/overlay/vfs/g' /usr/share/containers/storage.conf # default system config | |
sed -i 's/overlay/vfs/g' /etc/containers/storage.conf || true # potential overrides | |
if [ "${{ matrix.test }}" == "parallel" ]; then | |
# 4 is a bit arbitrary | |
TEST_WORKERS="-n 4" | |
TEST_CATEGORY="test_stages.py" | |
else | |
# test_assemblers.py is run below | |
TEST_CATEGORY="not test_stages.py and not test_assemblers.py" | |
# DNF python package can't be installed using pip in the tox environment. | |
# We need to use the version from the system to test things. | |
# Since we are running tests on Fedora, enable site packages only | |
# for Python version which is available on Fedora. | |
# See also: https://github.com/osbuild/containers/pull/79 | |
if [ "${{ matrix.environment }}" == "$(cat /osb/libdnf-python-version)" ]; then | |
TOX_ARGS="-x testenv.sitepackages=True" | |
fi | |
fi | |
OSBUILD_TEST_STORE="${{ env.OSBUILD_TEST_STORE }}" \ | |
tox -e "${{ matrix.environment }}" $TOX_ARGS -- -rs $TEST_WORKERS -k "$TEST_CATEGORY" --error-on-skip -k "not test_selinux" | |
v1_manifests: | |
name: "Assembler test (legacy)" | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Clone Repository" | |
uses: actions/checkout@v4 | |
- name: "Run" | |
uses: osbuild/containers/src/actions/privdocker@552e30cf1b4ed19c6ddaa57f96c342b3dff4227b | |
env: | |
# Using 4 workers is a bit arbitrary, "auto" is probably too aggressive. | |
TEST_WORKERS: "-n 4" | |
with: | |
image: ghcr.io/osbuild/osbuild-ci:latest-202409171558 | |
run: | | |
OSBUILD_TEST_STORE="${{ env.OSBUILD_TEST_STORE }}" \ | |
tox -e "py36" -- ${{ env.TEST_WORKERS }} test.run.test_assemblers |