debian-forge/.github/workflows/test.yml
Michael Vogt ea36e25b09 workflow: run assembler tests in parallel
The assembler tests currently run around 45min, try to run in
parallel to see how much we can win from that.
2024-03-05 07:44:26 +01:00

70 lines
2.5 KiB
YAML

name: Tests
on: [pull_request, push]
jobs:
test_suite:
name: "Unittest"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
test:
- "test.mod"
- "test.run.test_boot"
- "test.run.test_devices"
- "test.run.test_executable"
- "test.run.test_mount"
- "test.run.test_noop"
- "test.run.test_sources"
- "test.run.test_stages"
- "stages/test"
environment:
- "py36" # RH8
- "py39" # RH9
- "py312" # latest fedora
steps:
- name: "Clone Repository"
uses: actions/checkout@v3
- name: "Run"
uses: osbuild/containers/src/actions/privdocker@552e30cf1b4ed19c6ddaa57f96c342b3dff4227b
with:
image: ghcr.io/osbuild/osbuild-ci:latest-202308241910
run: |
# Note that only "test.run.test_stages" runs in parallel because
# the other tests are not sufficiently isolated and will cause
# random failures. But test_stages is the long running one with
# almost 2h.
if [ "${{ matrix.test }}" = "test.run.test_stages" ]; then
# Using 4 workers is a bit arbitrary, "auto" is probably too
# aggressive.
export TEST_WORKERS="-n 4"
# Share the store between the workers speeds things up further
export OSBUILD_TEST_STORE=/var/tmp/osbuild-test-store
fi
# 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
TEST_CATEGORY="${{ matrix.test }}" \
tox -e "${{ matrix.environment }}"
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
with:
image: ghcr.io/osbuild/osbuild-ci:latest-202308241910
run: |
# Using 4 workers is a bit arbitrary, "auto" is probably too
# aggressive.
export TEST_WORKERS="-n 4"
export OSBUILD_TEST_STORE=/var/tmp/osbuild-test-store
TEST_CATEGORY="test.run.test_assemblers" \
tox -e "py36"