mbox series

[0/2] Enable SState cache in GitLab CI

Message ID 20251218073853.41121-1-felix.moessbauer@siemens.com
Headers show
Series Enable SState cache in GitLab CI | expand

Message

MOESSBAUER, Felix Dec. 18, 2025, 7:38 a.m. UTC
By running the GitLab CI jobs with SState cache enabled, huge speedups
can be achieved. Example:

Rebuild with 100% cache hits:

+ avocado run /build/testsuite/citest.py -t dev --max-parallel-tasks=1 --disable-sysinfo -p sstate=1
JOB ID     : 3070455808c8c6c4fa78adac9e4c4508fe001069
JOB LOG    : /build/build/job-results/job-2025-12-17T16.59-3070455/job.log
 (1/6) /build/testsuite/citest.py:DevTest.test_dev: STARTED
 (1/6) /build/testsuite/citest.py:DevTest.test_dev:  PASS (449.91 s)
 (2/6) /build/testsuite/citest.py:DevTest.test_dev_apps: STARTED
 (2/6) /build/testsuite/citest.py:DevTest.test_dev_apps:  PASS (307.69 s)
 (3/6) /build/testsuite/citest.py:DevTest.test_dev_rebuild: STARTED
 (3/6) /build/testsuite/citest.py:DevTest.test_dev_rebuild:  PASS (249.28 s)
 (4/6) /build/testsuite/citest.py:DevTest.test_dev_run_amd64_bookworm: STARTED
 (4/6) /build/testsuite/citest.py:DevTest.test_dev_run_amd64_bookworm:  PASS (96.88 s)
 (5/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm64_bookworm: STARTED
 (5/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm64_bookworm:  PASS (61.12 s)
 (6/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm_bookworm: STARTED
 (6/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm_bookworm:  PASS (64.81 s)
RESULTS    : PASS 6 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 1233.72 s

Rebuild without cache:

+ avocado run /build/testsuite/citest.py -t dev --max-parallel-tasks=1 --disable-sysinfo -p sstate=1
JOB ID     : 38c1d4fa508ab774c7774ad404a3575343c59979
JOB LOG    : /build/build/job-results/job-2025-12-17T13.29-38c1d4f/job.log
 (1/6) /build/testsuite/citest.py:DevTest.test_dev: STARTED
 (1/6) /build/testsuite/citest.py:DevTest.test_dev:  PASS (1559.37 s)
 (2/6) /build/testsuite/citest.py:DevTest.test_dev_apps: STARTED
 (2/6) /build/testsuite/citest.py:DevTest.test_dev_apps:  PASS (1429.77 s)
 (3/6) /build/testsuite/citest.py:DevTest.test_dev_rebuild: STARTED
 (3/6) /build/testsuite/citest.py:DevTest.test_dev_rebuild:  PASS (383.64 s)
 (4/6) /build/testsuite/citest.py:DevTest.test_dev_run_amd64_bookworm: STARTED
 (4/6) /build/testsuite/citest.py:DevTest.test_dev_run_amd64_bookworm:  PASS (99.56 s)
 (5/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm64_bookworm: STARTED
 (5/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm64_bookworm:  PASS (62.24 s)
 (6/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm_bookworm: STARTED
 (6/6) /build/testsuite/citest.py:DevTest.test_dev_run_arm_bookworm:  PASS (65.56 s)
RESULTS    : PASS 6 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 0
JOB TIME   : 3604.21 s

Note: the measurements are on top of the "Various improvements to the testsuite" series,
but the patches also work independently.

Best regards,
Felix Moessbauer

Felix Moessbauer (2):
  testsuite: forward SSTATE_MIRRORS into CI env on sstate
  ci: add support for sstate cache

 .gitlab-ci.yml         | 34 ++++++++++++++++++++++++++++------
 testsuite/cibuilder.py |  2 ++
 2 files changed, 30 insertions(+), 6 deletions(-)