mirror of
https://gitlab.winehq.org/wine/wine.git
synced 2025-08-28 18:23:54 +02:00
168 lines
4.6 KiB
YAML
168 lines
4.6 KiB
YAML
# CI script for building Wine
|
|
|
|
.wine-build:
|
|
stage: build
|
|
image: $CI_REGISTRY/wine/wine:debian-trixie
|
|
interruptible: true
|
|
variables:
|
|
GIT_DEPTH: 0
|
|
cache:
|
|
- key: $CI_JOB_NAME-ccache
|
|
paths:
|
|
- ccache/
|
|
- key:
|
|
files:
|
|
- configure.ac
|
|
prefix: $CI_JOB_NAME-config
|
|
paths:
|
|
- build32/config.cache
|
|
- build64/config.cache
|
|
before_script:
|
|
- export BASEDIR="$PWD"
|
|
- export CCACHE_BASEDIR="$BASEDIR"
|
|
- export CCACHE_DIR="$BASEDIR/ccache"
|
|
- export CCACHE_COMPILERCHECK=content
|
|
- export PATH="/usr/lib/ccache:$PATH"
|
|
- git config --global --add safe.directory $CI_PROJECT_DIR
|
|
- git fetch --tags
|
|
- mkdir -p build32 build64
|
|
- rm -fr .git/rebase-merge # in case a previous CI run failed in git rebase
|
|
|
|
build-linux:
|
|
extends: .wine-build
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
tags:
|
|
- build
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- usr/local/
|
|
script:
|
|
- 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
|
|
|
|
build-linux-arm64:
|
|
extends: .wine-build
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
tags:
|
|
- arm64-build
|
|
script:
|
|
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-linux-arm64
|
|
|
|
build-mac:
|
|
extends: .wine-build
|
|
image: winehq-sequoia-pristine
|
|
variables:
|
|
TART_EXECUTOR_SSH_USERNAME: "gitlab"
|
|
TART_EXECUTOR_SSH_PASSWORD: "gitlab"
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
tags:
|
|
- mac
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- build64/config.log
|
|
- build32/config.log
|
|
script:
|
|
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-mac
|
|
|
|
build-sast:
|
|
extends: .wine-build
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
tags:
|
|
- build
|
|
artifacts:
|
|
reports:
|
|
codequality: gl-code-quality-report.json
|
|
variables:
|
|
SASTFLAGS: >-
|
|
-Xclang -analyzer-disable-checker=core.CallAndMessage
|
|
-Xclang -analyzer-disable-checker=core.DivideZero
|
|
-Xclang -analyzer-disable-checker=core.NullDereference
|
|
-Xclang -analyzer-disable-checker=core.UndefinedBinaryOperatorResult
|
|
-Xclang -analyzer-disable-checker=core.uninitialized.Assign
|
|
-Xclang -analyzer-disable-checker=deadcode.DeadStores
|
|
-Xclang -analyzer-disable-checker=unix.Malloc
|
|
script:
|
|
- ./tools/make_requests
|
|
- ./tools/make_specfiles
|
|
- ./tools/make_makefiles
|
|
- autoreconf -f
|
|
- cd build64
|
|
- ../configure -q -C --enable-sast --enable-win64
|
|
- make -s gl-code-quality-report.json SASTFLAGS="${SASTFLAGS}"
|
|
- mv gl-code-quality-report.json $BASEDIR
|
|
|
|
build-winetest:
|
|
stage: build
|
|
image: $CI_REGISTRY/wine/wine:debian-trixie
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
|
needs:
|
|
- job: build-linux
|
|
variables:
|
|
GIT_STRATEGY: none
|
|
artifacts:
|
|
name: winetest
|
|
paths:
|
|
- winetest.args
|
|
- winetest.exe
|
|
- winetest64.exe
|
|
script:
|
|
- 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-linux:
|
|
extends: .wine-build
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
tags:
|
|
- build
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- usr/local/
|
|
script:
|
|
- ./tools/gitlab/build-linux
|
|
|
|
build-daily-mac:
|
|
extends: .wine-build
|
|
image: winehq-sonoma-pristine
|
|
variables:
|
|
TART_EXECUTOR_SSH_USERNAME: "gitlab"
|
|
TART_EXECUTOR_SSH_PASSWORD: "gitlab"
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
tags:
|
|
- mac
|
|
artifacts:
|
|
expire_in: 1 day
|
|
paths:
|
|
- usr/local/
|
|
script:
|
|
- ./tools/gitlab/build-mac
|
|
|
|
build-daily-winetest:
|
|
stage: build
|
|
image: $CI_REGISTRY/wine/wine:debian-trixie
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
needs:
|
|
- job: build-daily-linux
|
|
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
|