Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/tools/gitlab/build.yml
4388 views
1
# CI script for building Wine
2
3
.wine-build:
4
stage: build
5
image: $CI_REGISTRY/wine/wine:debian-trixie
6
interruptible: true
7
variables:
8
GIT_DEPTH: 0
9
cache:
10
- key: $CI_JOB_NAME-ccache
11
paths:
12
- ccache/
13
- key:
14
files:
15
- configure.ac
16
- tools/gitlab/image.docker
17
prefix: $CI_JOB_NAME-config
18
paths:
19
- build32/config.cache
20
- build64/config.cache
21
before_script:
22
- export BASEDIR="$PWD"
23
- export CCACHE_BASEDIR="$BASEDIR"
24
- export CCACHE_DIR="$BASEDIR/ccache"
25
- export CCACHE_COMPILERCHECK=content
26
- export PATH="/usr/lib/ccache:$PATH"
27
- git config --global --add safe.directory $CI_PROJECT_DIR
28
- git fetch --tags
29
- mkdir -p build32 build64
30
- rm -fr .git/rebase-merge # in case a previous CI run failed in git rebase
31
32
build-linux:
33
extends: .wine-build
34
rules:
35
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
36
tags:
37
- build
38
artifacts:
39
expire_in: 1 day
40
paths:
41
- usr/local/
42
script:
43
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-linux
44
- git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA | sed -re '/\/tests\//!d; s@/tests/.*@/tests/Makefile.in@' |
45
(xargs -r ls 2>/dev/null || true) | xargs -r sed '/TESTDLL/!d; [email protected]@@; s@.*= *@@' >usr/local/share/wine/winetest.args
46
47
build-linux-arm64:
48
extends: .wine-build
49
rules:
50
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
51
tags:
52
- arm64-build
53
script:
54
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-linux-arm64
55
56
build-mac:
57
extends: .wine-build
58
image: winehq-sequoia-pristine
59
variables:
60
TART_EXECUTOR_SSH_USERNAME: "gitlab"
61
TART_EXECUTOR_SSH_PASSWORD: "gitlab"
62
rules:
63
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
64
tags:
65
- mac
66
artifacts:
67
when: on_failure
68
paths:
69
- build64/config.log
70
- build32/config.log
71
script:
72
- git rebase $CI_MERGE_REQUEST_DIFF_BASE_SHA --exec ./tools/gitlab/build-mac
73
74
build-sast:
75
extends: .wine-build
76
rules:
77
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
78
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
79
tags:
80
- build
81
artifacts:
82
reports:
83
codequality: gl-code-quality-report.json
84
variables:
85
SASTFLAGS: >-
86
-Xclang -analyzer-disable-checker=core.CallAndMessage
87
-Xclang -analyzer-disable-checker=core.DivideZero
88
-Xclang -analyzer-disable-checker=core.NullDereference
89
-Xclang -analyzer-disable-checker=core.UndefinedBinaryOperatorResult
90
-Xclang -analyzer-disable-checker=core.uninitialized.Assign
91
-Xclang -analyzer-disable-checker=deadcode.DeadStores
92
-Xclang -analyzer-disable-checker=unix.Malloc
93
script:
94
- ./tools/make_requests
95
- ./tools/make_specfiles
96
- ./tools/make_makefiles
97
- autoreconf -f
98
- cd build64
99
- ../configure -q -C --enable-sast --enable-win64
100
- make -s gl-code-quality-report.json SASTFLAGS="${SASTFLAGS}"
101
- mv gl-code-quality-report.json $BASEDIR
102
103
build-winetest:
104
stage: build
105
image: $CI_REGISTRY/wine/wine:debian-trixie
106
rules:
107
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
108
needs:
109
- job: build-linux
110
variables:
111
GIT_STRATEGY: none
112
artifacts:
113
name: winetest
114
paths:
115
- winetest.args
116
- winetest.exe
117
- winetest64.exe
118
script:
119
- mv usr/local/share/wine/winetest.args winetest.args
120
- mv usr/local/lib/wine/i386-windows/winetest.exe winetest.exe
121
- mv usr/local/lib/wine/x86_64-windows/winetest.exe winetest64.exe
122
123
build-daily-linux:
124
extends: .wine-build
125
rules:
126
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
127
tags:
128
- build
129
artifacts:
130
expire_in: 1 day
131
paths:
132
- usr/local/
133
script:
134
- ./tools/gitlab/build-linux
135
136
build-daily-mac:
137
extends: .wine-build
138
image: winehq-sonoma-pristine
139
variables:
140
TART_EXECUTOR_SSH_USERNAME: "gitlab"
141
TART_EXECUTOR_SSH_PASSWORD: "gitlab"
142
rules:
143
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
144
tags:
145
- mac
146
artifacts:
147
expire_in: 1 day
148
paths:
149
- usr/local/
150
script:
151
- ./tools/gitlab/build-mac
152
153
build-daily-winetest:
154
stage: build
155
image: $CI_REGISTRY/wine/wine:debian-trixie
156
rules:
157
- if: $CI_PIPELINE_SOURCE == 'trigger' && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
158
needs:
159
- job: build-daily-linux
160
variables:
161
GIT_STRATEGY: none
162
artifacts:
163
name: winetest
164
paths:
165
- winetest.exe
166
- winetest64.exe
167
script:
168
- mv usr/local/lib/wine/i386-windows/winetest.exe winetest.exe
169
- mv usr/local/lib/wine/x86_64-windows/winetest.exe winetest64.exe
170
171