From 4f8ff6bc99f3baa2f7364745a631c900c978bbad Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Wed, 20 Mar 2024 19:54:52 +0100 Subject: [PATCH] workflows: improve speed of test_stages and test_assemblers The other tests have concurrency issues at the moment. It seems in https://github.com/osbuild/osbuild/pull/1655 we lost parallel running. The issue seems to be that `env` does not actually define a shell environment but only a github environment. This sets commit sets the shell env explicitly to unbreak us again. --- .github/workflows/test.yml | 42 +++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c2537e5a..20bcd45d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -7,8 +7,9 @@ concurrency: cancel-in-progress: true env: - # Using 4 workers is a bit arbitrary, "auto" is probably too aggressive. - TEST_WORKERS: "-n 4" + # setting workers to 1 just to have the same syntax in all test + # but to disable parallelism for the majority who have concurrency issues + TEST_WORKERS: "-n 1" # Share the store between the workers speeds things up further OSBUILD_TEST_STORE: /var/tmp/osbuild-test-store @@ -20,19 +21,25 @@ jobs: 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" + - "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 + - "py36" # RH8 + - "py39" # RH9 + - "py312" # latest fedora + # special keyword "include" + include: + # this test _can_ run in parallel + # Using 4 workers is a bit arbitrary, "auto" is probably too aggressive. + - test: "test.run.test_stages" + env_TEST_WORKERS: "-n 4" steps: - name: "Clone Repository" uses: actions/checkout@v3 @@ -47,6 +54,8 @@ jobs: 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 }}" \ + TEST_WORKERS="${{ matrix.env_TEST_WORKERS || env.TEST_WORKERS }}" \ + OSBUILD_TEST_STORE="${{ env.OSBUILD_TEST_STORE }}" \ tox -e "${{ matrix.environment }}" v1_manifests: @@ -57,8 +66,13 @@ jobs: 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-202308241910 run: | TEST_CATEGORY="test.run.test_assemblers" \ + TEST_WORKERS="${{ env.TEST_WORKERS }}" \ + OSBUILD_TEST_STORE="${{ env.OSBUILD_TEST_STORE }}" \ tox -e "py36"