I have a question for Julliard before doing additional work: 1. Why do only MR test jobs have the extra-quiet winetest option enabled? I think it exposes test flakiness (which could be insightful in normal Wine jobs too)
From: Aida Jonikienė aidas957@gmail.com
- Rename test-linux-64 to test-linux-dinput to make it clear that only dinput is being tested. - Add test prefixes in test.yml to make things more consistent with build.yml. - Add mr/daily secondary prefixes to reduce test results confusion. - Rename linux to debian to make it clear builds are done on a stable Linux distrbution with older compilers. --- tools/gitlab/build.yml | 14 +++++++------- tools/gitlab/test.yml | 28 ++++++++++++++-------------- 2 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/tools/gitlab/build.yml b/tools/gitlab/build.yml index 528d998b644..bf4d0c49f4d 100644 --- a/tools/gitlab/build.yml +++ b/tools/gitlab/build.yml @@ -28,7 +28,7 @@ - mkdir -p build32 build64 - rm -fr .git/rebase-merge # in case a previous CI run failed in git rebase
-build-linux: +build-mr-debian: extends: .wine-build rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -42,7 +42,7 @@ build-linux: - git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA | sed -re '//tests//!d; s@/tests/.*@/tests/Makefile.in@' | (xargs -r ls 2>/dev/null || true) | xargs -r sed '/TESTDLL/!d; s@.dll@@; s@.*= *@@' >usr/local/share/wine/winetest.args
-build-clang: +build-mr-debian-clang: extends: .wine-build rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' @@ -50,7 +50,7 @@ build-clang: - mkdir -p build32 build64 - ./tools/gitlab/build-clang
-build-mac: +build-mr-mac: extends: .wine-build image: winehq-sonoma-pristine variables: @@ -69,13 +69,13 @@ build-mac: - mkdir -p build32 build64 - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-mac
-build-winetest: +build-mr-winetest: stage: build image: $CI_REGISTRY/wine/wine:debian-bookworm rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-linux + - job: build-mr-debian variables: GIT_STRATEGY: none artifacts: @@ -89,7 +89,7 @@ build-winetest: - mv usr/local/lib/wine/i386-windows/winetest.exe winetest.exe - mv usr/local/lib/wine/x86_64-windows/winetest.exe winetest64.exe
-build-daily-linux: +build-daily-debian: extends: .wine-build rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH @@ -107,7 +107,7 @@ build-daily-winetest: rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-linux + - job: build-daily-debian variables: GIT_STRATEGY: none artifacts: diff --git a/tools/gitlab/test.yml b/tools/gitlab/test.yml index f49e935485a..71279494c37 100644 --- a/tools/gitlab/test.yml +++ b/tools/gitlab/test.yml @@ -47,31 +47,31 @@ - wineserver -w - printf '\e[0Ksection_end:%s:wine_test_prepare_env\r\e[0K' "$(date +%s)"
-test-linux-64: +test-mr-debian-dinput: extends: .wine-test variables: INCLUDE_TESTS: "dinput" rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-linux + - job: build-mr-debian script: - export WINETEST_COLOR=1 - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL $INCLUDE_TESTS
-test-linux-32: +test-mr-debian-32: extends: .wine-test variables: EXCLUDE_TESTS: "d3d11:d3d11 d3d9:d3d9ex d3d9:visual" rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-linux + - job: build-mr-debian script: - export WINETEST_COLOR=1 - wine usr/local/lib/wine/i386-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL -n $EXCLUDE_TESTS
-test-win10-21h2-32: +test-mr-win10-21h2-32: stage: test interruptible: true variables: @@ -79,7 +79,7 @@ test-win10-21h2-32: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-winetest + - job: build-mr-winetest tags: - win10-21h2 script: @@ -92,7 +92,7 @@ test-win10-21h2-32: paths: - winetest.log
-test-win10-21h2-64: +test-mr-win10-21h2-64: stage: test interruptible: true variables: @@ -100,7 +100,7 @@ test-win10-21h2-64: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-winetest + - job: build-mr-winetest tags: - win10-21h2 script: @@ -113,25 +113,25 @@ test-win10-21h2-64: paths: - winetest.log
-debian-32: +test-daily-debian-32: extends: .wine-test rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-linux + - job: build-daily-debian script: - wine usr/local/lib/wine/i386-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL
-debian-64: +test-daily-debian-64: extends: .wine-test rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-linux + - job: build-daily-debian script: - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL
-win10-21h2-32: +test-daily-win10-21h2-32: stage: test interruptible: true variables: @@ -145,7 +145,7 @@ win10-21h2-32: script: - ./winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL
-win10-21h2-64: +test-daily-win10-21h2-64: stage: test interruptible: true variables:
From: Aida Jonikienė aidas957@gmail.com
This change should reduce the amount of duplicate code (this also enables daily CI for MacOS/Debian Clang). --- tools/gitlab/build-clang | 2 ++ tools/gitlab/build.yml | 58 +++++++++++----------------------------- tools/gitlab/test.yml | 16 +++++------ 3 files changed, 25 insertions(+), 51 deletions(-)
diff --git a/tools/gitlab/build-clang b/tools/gitlab/build-clang index 9f5a738448a..b1b1cb8679c 100755 --- a/tools/gitlab/build-clang +++ b/tools/gitlab/build-clang @@ -14,3 +14,5 @@ cd build64 ../configure -q -C --enable-werror --enable-archs=i386,x86_64,aarch64 --with-mingw=clang make -s -j$(nproc) cd .. + +git reset --hard diff --git a/tools/gitlab/build.yml b/tools/gitlab/build.yml index bf4d0c49f4d..5fb71cc36ca 100644 --- a/tools/gitlab/build.yml +++ b/tools/gitlab/build.yml @@ -27,37 +27,39 @@ - git fetch --tags - mkdir -p build32 build64 - rm -fr .git/rebase-merge # in case a previous CI run failed in git rebase + - test -n $CI_MERGE_REQUEST_DIFF_BASE_SHA && git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA # Commonized MR steps + - test -n $CI_MERGE_REQUEST_DIFF_BASE_SHA && git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA | sed -re + '//tests//!d; s@/tests/.*@/tests/Makefile.in@' | (xargs -r ls 2>/dev/null || true) | xargs -r sed + '/TESTDLL/!d; s@.dll@@; s@.*= *@@' >usr/local/share/wine/winetest.args || touch usr/local/share/wine/winetest.args
-build-mr-debian: +build-debian: extends: .wine-build rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) artifacts: expire_in: 1 day paths: - usr/local/ script: - mkdir -p build32 build64 - - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-linux - - git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA | sed -re '//tests//!d; s@/tests/.*@/tests/Makefile.in@' | - (xargs -r ls 2>/dev/null || true) | xargs -r sed '/TESTDLL/!d; s@.dll@@; s@.*= *@@' >usr/local/share/wine/winetest.args + - ./tools/gitlab/build-linux
-build-mr-debian-clang: +build-debian-clang: extends: .wine-build rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) script: - mkdir -p build32 build64 - ./tools/gitlab/build-clang
-build-mr-mac: +build-mac: extends: .wine-build image: winehq-sonoma-pristine variables: TART_EXECUTOR_SSH_USERNAME: "gitlab" TART_EXECUTOR_SSH_PASSWORD: "gitlab" rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) tags: - mac artifacts: @@ -67,15 +69,15 @@ build-mr-mac: - build32/config.log script: - mkdir -p build32 build64 - - git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-mac + - ./tools/gitlab/build-mac
-build-mr-winetest: +build-winetest: stage: build image: $CI_REGISTRY/wine/wine:debian-bookworm rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' + - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) needs: - - job: build-mr-debian + - job: build-debian variables: GIT_STRATEGY: none artifacts: @@ -88,33 +90,3 @@ build-mr-winetest: - mv usr/local/share/wine/winetest.args winetest.args - mv usr/local/lib/wine/i386-windows/winetest.exe winetest.exe - mv usr/local/lib/wine/x86_64-windows/winetest.exe winetest64.exe - -build-daily-debian: - extends: .wine-build - rules: - - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - artifacts: - expire_in: 1 day - paths: - - usr/local/ - script: - - mkdir -p build32 build64 - - ./tools/gitlab/build-linux - -build-daily-winetest: - stage: build - image: $CI_REGISTRY/wine/wine:debian-bookworm - rules: - - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH - needs: - - job: build-daily-debian - variables: - GIT_STRATEGY: none - artifacts: - name: winetest - paths: - - winetest.exe - - winetest64.exe - script: - - mv usr/local/lib/wine/i386-windows/winetest.exe winetest.exe - - mv usr/local/lib/wine/x86_64-windows/winetest.exe winetest64.exe diff --git a/tools/gitlab/test.yml b/tools/gitlab/test.yml index 71279494c37..26342e7650e 100644 --- a/tools/gitlab/test.yml +++ b/tools/gitlab/test.yml @@ -54,7 +54,7 @@ test-mr-debian-dinput: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-mr-debian + - job: build-debian script: - export WINETEST_COLOR=1 - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL $INCLUDE_TESTS @@ -66,7 +66,7 @@ test-mr-debian-32: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-mr-debian + - job: build-debian script: - export WINETEST_COLOR=1 - wine usr/local/lib/wine/i386-windows/winetest.exe -q -q -o - -t gitlab -u $CI_JOB_URL -n $EXCLUDE_TESTS @@ -79,7 +79,7 @@ test-mr-win10-21h2-32: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-mr-winetest + - job: build-winetest tags: - win10-21h2 script: @@ -100,7 +100,7 @@ test-mr-win10-21h2-64: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' needs: - - job: build-mr-winetest + - job: build-winetest tags: - win10-21h2 script: @@ -118,7 +118,7 @@ test-daily-debian-32: rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-debian + - job: build-debian script: - wine usr/local/lib/wine/i386-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL
@@ -127,7 +127,7 @@ test-daily-debian-64: rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-debian + - job: build-debian script: - wine usr/local/lib/wine/x86_64-windows/winetest.exe -q -t gitlab-$CI_JOB_NAME -u $CI_JOB_URL
@@ -139,7 +139,7 @@ test-daily-win10-21h2-32: rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-winetest + - job: build-winetest tags: - win10-21h2 script: @@ -153,7 +153,7 @@ test-daily-win10-21h2-64: rules: - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - - job: build-daily-winetest + - job: build-winetest tags: - win10-21h2 script:
From: Aida Jonikienė aidas957@gmail.com
This should prevent any build script mistakes from potentially messing up CI. --- tools/gitlab/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/gitlab/build.yml b/tools/gitlab/build.yml index 5fb71cc36ca..c98983206b2 100644 --- a/tools/gitlab/build.yml +++ b/tools/gitlab/build.yml @@ -35,7 +35,7 @@ build-debian: extends: .wine-build rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) + - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH artifacts: expire_in: 1 day paths: @@ -47,7 +47,7 @@ build-debian: build-debian-clang: extends: .wine-build rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) + - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH script: - mkdir -p build32 build64 - ./tools/gitlab/build-clang @@ -59,7 +59,7 @@ build-mac: TART_EXECUTOR_SSH_USERNAME: "gitlab" TART_EXECUTOR_SSH_PASSWORD: "gitlab" rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) + - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH tags: - mac artifacts: @@ -75,7 +75,7 @@ build-winetest: stage: build image: $CI_REGISTRY/wine/wine:debian-bookworm rules: - - if: $CI_PIPELINE_SOURCE == 'merge_request_event' || ($CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH) + - if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH needs: - job: build-debian variables:
This merge request was closed by Alexandre Julliard.
I don't think that's an improvement.
- Adding the trigger reason in the name is not necessary, they are in different pipelines anyway. - The test job names are short on purpose to be used as winetest tags. - The 64-bit test is not dinput-specific, other tests can be added as needed. - Daily builds for clang and macos are not useful, we don't run the tests on them.