This will bring the latest image builds with new dependencies for unit tests. In addition, pin down the osbuild-ci-c*s container to a specific tag, to ensure stability of the CI. Signed-off-by: Tomáš Hozza <thozza@redhat.com>
75 lines
2.8 KiB
YAML
75 lines
2.8 KiB
YAML
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-202411221033
|
|
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"
|
|
|
|
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-202411221033
|
|
run: |
|
|
OSBUILD_TEST_STORE="${{ env.OSBUILD_TEST_STORE }}" \
|
|
tox -e "py36" -- ${{ env.TEST_WORKERS }} test.run.test_assemblers
|