1cc1dc7a3Sopenharmony_ci/* This pipeline is used for post-commit testing, so it runs frequently.
2cc1dc7a3Sopenharmony_ci *
3cc1dc7a3Sopenharmony_ci * Test objectives for this pipeline are:
4cc1dc7a3Sopenharmony_ci *
5cc1dc7a3Sopenharmony_ci *   - Run the entire pipeline in less than 10 minutes.
6cc1dc7a3Sopenharmony_ci *   - Test builds on all supported operating systems.
7cc1dc7a3Sopenharmony_ci *   - Test builds on all supported compilers.
8cc1dc7a3Sopenharmony_ci *   - Test release and debug build variants.
9cc1dc7a3Sopenharmony_ci *   - Run functional smoke tests.
10cc1dc7a3Sopenharmony_ci *   - Run image quality smoke tests.
11cc1dc7a3Sopenharmony_ci *
12cc1dc7a3Sopenharmony_ci * The test matrix is not fully covered; e.g. we can assume compilers behave
13cc1dc7a3Sopenharmony_ci * similarly on different operating systems, so we test one compiler per OS.
14cc1dc7a3Sopenharmony_ci */
15cc1dc7a3Sopenharmony_ci
16cc1dc7a3Sopenharmony_ci@Library('hive-infra-library@changes/86/295486/1') _
17cc1dc7a3Sopenharmony_ci
18cc1dc7a3Sopenharmony_cipipeline {
19cc1dc7a3Sopenharmony_ci  agent none
20cc1dc7a3Sopenharmony_ci
21cc1dc7a3Sopenharmony_ci  options {
22cc1dc7a3Sopenharmony_ci    ansiColor('xterm')
23cc1dc7a3Sopenharmony_ci    timestamps()
24cc1dc7a3Sopenharmony_ci  }
25cc1dc7a3Sopenharmony_ci
26cc1dc7a3Sopenharmony_ci  stages {
27cc1dc7a3Sopenharmony_ci    stage('Build All') {
28cc1dc7a3Sopenharmony_ci      parallel {
29cc1dc7a3Sopenharmony_ci        /* Build for Linux on x86-64 using GCC */
30cc1dc7a3Sopenharmony_ci        stage('Linux') {
31cc1dc7a3Sopenharmony_ci          agent {
32cc1dc7a3Sopenharmony_ci            kubernetes {
33cc1dc7a3Sopenharmony_ci              yaml '''\
34cc1dc7a3Sopenharmony_ci                apiVersion: v1
35cc1dc7a3Sopenharmony_ci                kind: Pod
36cc1dc7a3Sopenharmony_ci                spec:
37cc1dc7a3Sopenharmony_ci                  securityContext:
38cc1dc7a3Sopenharmony_ci                    runAsUser: 1000
39cc1dc7a3Sopenharmony_ci                    runAsGroup: 1000
40cc1dc7a3Sopenharmony_ci                  imagePullSecrets:
41cc1dc7a3Sopenharmony_ci                    - name: artifactory-ms-docker
42cc1dc7a3Sopenharmony_ci                  containers:
43cc1dc7a3Sopenharmony_ci                    - name: astcenc
44cc1dc7a3Sopenharmony_ci                      image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.2.0
45cc1dc7a3Sopenharmony_ci                      command:
46cc1dc7a3Sopenharmony_ci                        - sleep
47cc1dc7a3Sopenharmony_ci                      args:
48cc1dc7a3Sopenharmony_ci                        - infinity
49cc1dc7a3Sopenharmony_ci                      resources:
50cc1dc7a3Sopenharmony_ci                        requests:
51cc1dc7a3Sopenharmony_ci                          cpu: 4
52cc1dc7a3Sopenharmony_ci                          memory: 8Gi
53cc1dc7a3Sopenharmony_ci                        limits:
54cc1dc7a3Sopenharmony_ci                          cpu: 8
55cc1dc7a3Sopenharmony_ci                          memory: 16Gi
56cc1dc7a3Sopenharmony_ci              '''.stripIndent()
57cc1dc7a3Sopenharmony_ci              defaultContainer 'astcenc'
58cc1dc7a3Sopenharmony_ci            }
59cc1dc7a3Sopenharmony_ci          }
60cc1dc7a3Sopenharmony_ci          stages {
61cc1dc7a3Sopenharmony_ci            stage('Clean') {
62cc1dc7a3Sopenharmony_ci              steps {
63cc1dc7a3Sopenharmony_ci                sh '''
64cc1dc7a3Sopenharmony_ci                    git clean -ffdx
65cc1dc7a3Sopenharmony_ci                    git submodule init
66cc1dc7a3Sopenharmony_ci                    git submodule update
67cc1dc7a3Sopenharmony_ci                '''
68cc1dc7a3Sopenharmony_ci              }
69cc1dc7a3Sopenharmony_ci            }
70cc1dc7a3Sopenharmony_ci            stage('Build R x64') {
71cc1dc7a3Sopenharmony_ci              steps {
72cc1dc7a3Sopenharmony_ci                sh '''
73cc1dc7a3Sopenharmony_ci                  mkdir build_rel
74cc1dc7a3Sopenharmony_ci                  cd build_rel
75cc1dc7a3Sopenharmony_ci                  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_ISA_NONE=ON -DASTCENC_UNITTEST=ON -DASTCENC_PACKAGE=x64 ..
76cc1dc7a3Sopenharmony_ci                  make install package -j4
77cc1dc7a3Sopenharmony_ci                '''
78cc1dc7a3Sopenharmony_ci              }
79cc1dc7a3Sopenharmony_ci            }
80cc1dc7a3Sopenharmony_ci            stage('Build D x64') {
81cc1dc7a3Sopenharmony_ci              steps {
82cc1dc7a3Sopenharmony_ci                sh '''
83cc1dc7a3Sopenharmony_ci                  mkdir build_dbg
84cc1dc7a3Sopenharmony_ci                  cd build_dbg
85cc1dc7a3Sopenharmony_ci                  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_ISA_NONE=ON ..
86cc1dc7a3Sopenharmony_ci                  make -j4
87cc1dc7a3Sopenharmony_ci                '''
88cc1dc7a3Sopenharmony_ci              }
89cc1dc7a3Sopenharmony_ci            }
90cc1dc7a3Sopenharmony_ci            stage('Stash') {
91cc1dc7a3Sopenharmony_ci              steps {
92cc1dc7a3Sopenharmony_ci                dir('build_rel') {
93cc1dc7a3Sopenharmony_ci                  stash name: 'astcenc-linux-x64', includes: '*.zip'
94cc1dc7a3Sopenharmony_ci                }
95cc1dc7a3Sopenharmony_ci              }
96cc1dc7a3Sopenharmony_ci            }
97cc1dc7a3Sopenharmony_ci            stage('Test') {
98cc1dc7a3Sopenharmony_ci              steps {
99cc1dc7a3Sopenharmony_ci                sh '''
100cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_functional.py --encoder=none
101cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_functional.py --encoder=sse2
102cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_functional.py --encoder=sse4.1
103cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_functional.py --encoder=avx2
104cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_image.py --encoder=none --test-set Small --test-quality medium
105cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_image.py --encoder=all-x86 --test-set Small --test-quality medium
106cc1dc7a3Sopenharmony_ci                '''
107cc1dc7a3Sopenharmony_ci                dir('build_rel') {
108cc1dc7a3Sopenharmony_ci                  sh 'ctest'
109cc1dc7a3Sopenharmony_ci                }
110cc1dc7a3Sopenharmony_ci              }
111cc1dc7a3Sopenharmony_ci            }
112cc1dc7a3Sopenharmony_ci          }
113cc1dc7a3Sopenharmony_ci        }
114cc1dc7a3Sopenharmony_ci        /* Build for Windows on x86-64 using MSVC */
115cc1dc7a3Sopenharmony_ci        stage('Windows MSVC') {
116cc1dc7a3Sopenharmony_ci          agent {
117cc1dc7a3Sopenharmony_ci            label 'Windows'
118cc1dc7a3Sopenharmony_ci          }
119cc1dc7a3Sopenharmony_ci          stages {
120cc1dc7a3Sopenharmony_ci            stage('Clean') {
121cc1dc7a3Sopenharmony_ci              steps {
122cc1dc7a3Sopenharmony_ci                bat 'git clean -ffdx'
123cc1dc7a3Sopenharmony_ci              }
124cc1dc7a3Sopenharmony_ci            }
125cc1dc7a3Sopenharmony_ci            stage('Build R x64') {
126cc1dc7a3Sopenharmony_ci              steps {
127cc1dc7a3Sopenharmony_ci                bat '''
128cc1dc7a3Sopenharmony_ci                  call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
129cc1dc7a3Sopenharmony_ci                  mkdir build_rel
130cc1dc7a3Sopenharmony_ci                  cd build_rel
131cc1dc7a3Sopenharmony_ci                  cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_PACKAGE=x64-cl ..
132cc1dc7a3Sopenharmony_ci                  nmake install package
133cc1dc7a3Sopenharmony_ci                '''
134cc1dc7a3Sopenharmony_ci              }
135cc1dc7a3Sopenharmony_ci            }
136cc1dc7a3Sopenharmony_ci            stage('Build D x64') {
137cc1dc7a3Sopenharmony_ci              steps {
138cc1dc7a3Sopenharmony_ci                bat '''
139cc1dc7a3Sopenharmony_ci                  call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
140cc1dc7a3Sopenharmony_ci                  mkdir build_dbg
141cc1dc7a3Sopenharmony_ci                  cd build_dbg
142cc1dc7a3Sopenharmony_ci                  cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_ISA_NONE=ON ..
143cc1dc7a3Sopenharmony_ci                  nmake
144cc1dc7a3Sopenharmony_ci                '''
145cc1dc7a3Sopenharmony_ci              }
146cc1dc7a3Sopenharmony_ci            }
147cc1dc7a3Sopenharmony_ci            stage('Stash') {
148cc1dc7a3Sopenharmony_ci              steps {
149cc1dc7a3Sopenharmony_ci                dir('build_rel') {
150cc1dc7a3Sopenharmony_ci                  stash name: 'astcenc-windows-x64-cl', includes: '*.zip'
151cc1dc7a3Sopenharmony_ci                }
152cc1dc7a3Sopenharmony_ci              }
153cc1dc7a3Sopenharmony_ci            }
154cc1dc7a3Sopenharmony_ci            stage('Test') {
155cc1dc7a3Sopenharmony_ci              steps {
156cc1dc7a3Sopenharmony_ci                bat '''
157cc1dc7a3Sopenharmony_ci                  set Path=c:\\Python3;c:\\Python3\\Scripts;%Path%
158cc1dc7a3Sopenharmony_ci                  call python ./Test/astc_test_image.py --test-set Small --test-quality medium
159cc1dc7a3Sopenharmony_ci                '''
160cc1dc7a3Sopenharmony_ci              }
161cc1dc7a3Sopenharmony_ci            }
162cc1dc7a3Sopenharmony_ci          }
163cc1dc7a3Sopenharmony_ci        }
164cc1dc7a3Sopenharmony_ci        /* Build for Windows on x86-64 using MSVC + ClangCL */
165cc1dc7a3Sopenharmony_ci        stage('Windows ClangCL') {
166cc1dc7a3Sopenharmony_ci          agent {
167cc1dc7a3Sopenharmony_ci            label 'Windows'
168cc1dc7a3Sopenharmony_ci          }
169cc1dc7a3Sopenharmony_ci          stages {
170cc1dc7a3Sopenharmony_ci            stage('Clean') {
171cc1dc7a3Sopenharmony_ci              steps {
172cc1dc7a3Sopenharmony_ci                bat 'git clean -ffdx'
173cc1dc7a3Sopenharmony_ci              }
174cc1dc7a3Sopenharmony_ci            }
175cc1dc7a3Sopenharmony_ci            stage('Build R x64') {
176cc1dc7a3Sopenharmony_ci              steps {
177cc1dc7a3Sopenharmony_ci                bat '''
178cc1dc7a3Sopenharmony_ci                  call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
179cc1dc7a3Sopenharmony_ci                  mkdir build_rel
180cc1dc7a3Sopenharmony_ci                  cd build_rel
181cc1dc7a3Sopenharmony_ci                  cmake -G "Visual Studio 17 2022" -T ClangCL -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_PACKAGE=x64-clangcl ..
182cc1dc7a3Sopenharmony_ci                  msbuild astcencoder.sln -property:Configuration=Release
183cc1dc7a3Sopenharmony_ci                  msbuild PACKAGE.vcxproj -property:Configuration=Release
184cc1dc7a3Sopenharmony_ci                  msbuild INSTALL.vcxproj -property:Configuration=Release
185cc1dc7a3Sopenharmony_ci                '''
186cc1dc7a3Sopenharmony_ci              }
187cc1dc7a3Sopenharmony_ci            }
188cc1dc7a3Sopenharmony_ci            stage('Build D x64') {
189cc1dc7a3Sopenharmony_ci              steps {
190cc1dc7a3Sopenharmony_ci                bat '''
191cc1dc7a3Sopenharmony_ci                  call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat
192cc1dc7a3Sopenharmony_ci                  mkdir build_dbg
193cc1dc7a3Sopenharmony_ci                  cd build_dbg
194cc1dc7a3Sopenharmony_ci                  cmake -G "Visual Studio 17 2022" -T ClangCL -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON ..
195cc1dc7a3Sopenharmony_ci                  msbuild astcencoder.sln -property:Configuration=Debug
196cc1dc7a3Sopenharmony_ci                '''
197cc1dc7a3Sopenharmony_ci              }
198cc1dc7a3Sopenharmony_ci            }
199cc1dc7a3Sopenharmony_ci            stage('Build R Arm64') {
200cc1dc7a3Sopenharmony_ci              steps {
201cc1dc7a3Sopenharmony_ci                bat '''
202cc1dc7a3Sopenharmony_ci                  call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvarsall.bat x64_arm64
203cc1dc7a3Sopenharmony_ci                  mkdir build_rel_arm64
204cc1dc7a3Sopenharmony_ci                  cd build_rel_arm64
205cc1dc7a3Sopenharmony_ci                  cmake -G "Visual Studio 17 2022" -A ARM64 -T ClangCL -DASTCENC_ISA_NEON=ON -DASTCENC_PACKAGE=arm64-clangcl ..
206cc1dc7a3Sopenharmony_ci                  msbuild astcencoder.sln -property:Configuration=Release
207cc1dc7a3Sopenharmony_ci                  msbuild PACKAGE.vcxproj -property:Configuration=Release
208cc1dc7a3Sopenharmony_ci                  msbuild INSTALL.vcxproj -property:Configuration=Release
209cc1dc7a3Sopenharmony_ci                '''
210cc1dc7a3Sopenharmony_ci              }
211cc1dc7a3Sopenharmony_ci            }
212cc1dc7a3Sopenharmony_ci            stage('Build D Arm64') {
213cc1dc7a3Sopenharmony_ci              steps {
214cc1dc7a3Sopenharmony_ci                bat '''
215cc1dc7a3Sopenharmony_ci                  call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvarsall.bat x64_arm64
216cc1dc7a3Sopenharmony_ci                  mkdir build_dbg_arm64
217cc1dc7a3Sopenharmony_ci                  cd build_dbg_arm64
218cc1dc7a3Sopenharmony_ci                  cmake -G "Visual Studio 17 2022" -A ARM64 -T ClangCL -DASTCENC_ISA_NEON=ON ..
219cc1dc7a3Sopenharmony_ci                  msbuild astcencoder.sln -property:Configuration=Debug
220cc1dc7a3Sopenharmony_ci                '''
221cc1dc7a3Sopenharmony_ci              }
222cc1dc7a3Sopenharmony_ci            }
223cc1dc7a3Sopenharmony_ci            stage('Stash') {
224cc1dc7a3Sopenharmony_ci              steps {
225cc1dc7a3Sopenharmony_ci                dir('build_rel') {
226cc1dc7a3Sopenharmony_ci                  stash name: 'astcenc-windows-x64-clangcl', includes: '*.zip'
227cc1dc7a3Sopenharmony_ci                }
228cc1dc7a3Sopenharmony_ci                dir('build_rel_arm64') {
229cc1dc7a3Sopenharmony_ci                  stash name: 'astcenc-windows-arm64-clangcl', includes: '*.zip'
230cc1dc7a3Sopenharmony_ci                }
231cc1dc7a3Sopenharmony_ci              }
232cc1dc7a3Sopenharmony_ci            }
233cc1dc7a3Sopenharmony_ci            stage('Test') {
234cc1dc7a3Sopenharmony_ci              steps {
235cc1dc7a3Sopenharmony_ci                bat '''
236cc1dc7a3Sopenharmony_ci                  set Path=c:\\Python3;c:\\Python3\\Scripts;%Path%
237cc1dc7a3Sopenharmony_ci                  call python ./Test/astc_test_image.py --test-set Small --test-quality medium
238cc1dc7a3Sopenharmony_ci                '''
239cc1dc7a3Sopenharmony_ci              }
240cc1dc7a3Sopenharmony_ci            }
241cc1dc7a3Sopenharmony_ci          }
242cc1dc7a3Sopenharmony_ci        }
243cc1dc7a3Sopenharmony_ci        /* Build for macOS on x86-64 using Clang */
244cc1dc7a3Sopenharmony_ci        stage('macOS') {
245cc1dc7a3Sopenharmony_ci          agent {
246cc1dc7a3Sopenharmony_ci            label 'mac && x86_64'
247cc1dc7a3Sopenharmony_ci          }
248cc1dc7a3Sopenharmony_ci          stages {
249cc1dc7a3Sopenharmony_ci            stage('Clean') {
250cc1dc7a3Sopenharmony_ci              steps {
251cc1dc7a3Sopenharmony_ci                sh 'git clean -ffdx'
252cc1dc7a3Sopenharmony_ci              }
253cc1dc7a3Sopenharmony_ci            }
254cc1dc7a3Sopenharmony_ci            stage('Build R') {
255cc1dc7a3Sopenharmony_ci              steps {
256cc1dc7a3Sopenharmony_ci                sh '''
257cc1dc7a3Sopenharmony_ci                  mkdir build_rel
258cc1dc7a3Sopenharmony_ci                  cd build_rel
259cc1dc7a3Sopenharmony_ci                  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_UNIVERSAL_BUILD=OFF -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_PACKAGE=x64 ..
260cc1dc7a3Sopenharmony_ci                  make install package -j4
261cc1dc7a3Sopenharmony_ci                '''
262cc1dc7a3Sopenharmony_ci              }
263cc1dc7a3Sopenharmony_ci            }
264cc1dc7a3Sopenharmony_ci            stage('Build D') {
265cc1dc7a3Sopenharmony_ci              steps {
266cc1dc7a3Sopenharmony_ci                sh '''
267cc1dc7a3Sopenharmony_ci                  mkdir build_dbg
268cc1dc7a3Sopenharmony_ci                  cd build_dbg
269cc1dc7a3Sopenharmony_ci                  cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DASTCENC_UNIVERSAL_BUILD=OFF -DASTCENC_ISA_AVX2=ON -DASTCENC_ISA_SSE41=ON -DASTCENC_ISA_SSE2=ON -DASTCENC_ISA_NONE=ON ..
270cc1dc7a3Sopenharmony_ci                  make -j4
271cc1dc7a3Sopenharmony_ci                '''
272cc1dc7a3Sopenharmony_ci              }
273cc1dc7a3Sopenharmony_ci            }
274cc1dc7a3Sopenharmony_ci            stage('Stash') {
275cc1dc7a3Sopenharmony_ci              steps {
276cc1dc7a3Sopenharmony_ci                dir('build_rel') {
277cc1dc7a3Sopenharmony_ci                  stash name: 'astcenc-macos-x64', includes: '*.zip'
278cc1dc7a3Sopenharmony_ci                }
279cc1dc7a3Sopenharmony_ci              }
280cc1dc7a3Sopenharmony_ci            }
281cc1dc7a3Sopenharmony_ci            stage('Test') {
282cc1dc7a3Sopenharmony_ci              steps {
283cc1dc7a3Sopenharmony_ci                sh '''
284cc1dc7a3Sopenharmony_ci                  export PATH=/usr/local/bin:$PATH
285cc1dc7a3Sopenharmony_ci                  python3 ./Test/astc_test_image.py --test-set Small --test-quality medium
286cc1dc7a3Sopenharmony_ci                '''
287cc1dc7a3Sopenharmony_ci              }
288cc1dc7a3Sopenharmony_ci            }
289cc1dc7a3Sopenharmony_ci          }
290cc1dc7a3Sopenharmony_ci        }
291cc1dc7a3Sopenharmony_ci      }
292cc1dc7a3Sopenharmony_ci    }
293cc1dc7a3Sopenharmony_ci    stage('Artifactory') {
294cc1dc7a3Sopenharmony_ci      agent {
295cc1dc7a3Sopenharmony_ci        kubernetes {
296cc1dc7a3Sopenharmony_ci          yaml '''
297cc1dc7a3Sopenharmony_ciapiVersion: v1
298cc1dc7a3Sopenharmony_cikind: Pod
299cc1dc7a3Sopenharmony_cispec:
300cc1dc7a3Sopenharmony_ci  securityContext:
301cc1dc7a3Sopenharmony_ci    runAsUser: 1000
302cc1dc7a3Sopenharmony_ci    runAsGroup: 1000
303cc1dc7a3Sopenharmony_ci  imagePullSecrets:
304cc1dc7a3Sopenharmony_ci    - name: artifactory-ms-docker
305cc1dc7a3Sopenharmony_ci  containers:
306cc1dc7a3Sopenharmony_ci    - name: astcenc
307cc1dc7a3Sopenharmony_ci      image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.0.0
308cc1dc7a3Sopenharmony_ci      command:
309cc1dc7a3Sopenharmony_ci        - sleep
310cc1dc7a3Sopenharmony_ci      args:
311cc1dc7a3Sopenharmony_ci        - infinity
312cc1dc7a3Sopenharmony_ci      resources:
313cc1dc7a3Sopenharmony_ci        requests:
314cc1dc7a3Sopenharmony_ci          cpu: 1
315cc1dc7a3Sopenharmony_ci          memory: 4Gi
316cc1dc7a3Sopenharmony_ci'''
317cc1dc7a3Sopenharmony_ci          defaultContainer 'astcenc'
318cc1dc7a3Sopenharmony_ci        }
319cc1dc7a3Sopenharmony_ci      }
320cc1dc7a3Sopenharmony_ci      options {
321cc1dc7a3Sopenharmony_ci        skipDefaultCheckout true
322cc1dc7a3Sopenharmony_ci      }
323cc1dc7a3Sopenharmony_ci      stages {
324cc1dc7a3Sopenharmony_ci        stage('Unstash') {
325cc1dc7a3Sopenharmony_ci          steps {
326cc1dc7a3Sopenharmony_ci            dir('upload/linux-x64') {
327cc1dc7a3Sopenharmony_ci              unstash 'astcenc-linux-x64'
328cc1dc7a3Sopenharmony_ci            }
329cc1dc7a3Sopenharmony_ci            dir('upload/windows-x64-cl') {
330cc1dc7a3Sopenharmony_ci              unstash 'astcenc-windows-x64-cl'
331cc1dc7a3Sopenharmony_ci            }
332cc1dc7a3Sopenharmony_ci            dir('upload/windows-x64-clangcl') {
333cc1dc7a3Sopenharmony_ci              unstash 'astcenc-windows-x64-clangcl'
334cc1dc7a3Sopenharmony_ci            }
335cc1dc7a3Sopenharmony_ci            dir('upload/windows-arm64-clangcl') {
336cc1dc7a3Sopenharmony_ci              unstash 'astcenc-windows-arm64-clangcl'
337cc1dc7a3Sopenharmony_ci            }
338cc1dc7a3Sopenharmony_ci            dir('upload/macos-x64') {
339cc1dc7a3Sopenharmony_ci              unstash 'astcenc-macos-x64'
340cc1dc7a3Sopenharmony_ci            }
341cc1dc7a3Sopenharmony_ci          }
342cc1dc7a3Sopenharmony_ci        }
343cc1dc7a3Sopenharmony_ci        stage('Upload') {
344cc1dc7a3Sopenharmony_ci          steps {
345cc1dc7a3Sopenharmony_ci            zip zipFile: 'astcenc.zip', dir: 'upload', archive: false
346cc1dc7a3Sopenharmony_ci            cepeArtifactoryUpload(sourcePattern: 'astcenc.zip')
347cc1dc7a3Sopenharmony_ci          }
348cc1dc7a3Sopenharmony_ci        }
349cc1dc7a3Sopenharmony_ci      }
350cc1dc7a3Sopenharmony_ci      post {
351cc1dc7a3Sopenharmony_ci        always {
352cc1dc7a3Sopenharmony_ci          deleteDir()
353cc1dc7a3Sopenharmony_ci        }
354cc1dc7a3Sopenharmony_ci      }
355cc1dc7a3Sopenharmony_ci    }
356cc1dc7a3Sopenharmony_ci  }
357cc1dc7a3Sopenharmony_ci
358cc1dc7a3Sopenharmony_ci  post {
359cc1dc7a3Sopenharmony_ci    failure {
360cc1dc7a3Sopenharmony_ci      script {
361cc1dc7a3Sopenharmony_ci        slackSend channel: '#dsg-eng-astcenc', color: 'danger', message: "Build ${JOB_NAME} ${BUILD_NUMBER} failed. (<${BUILD_URL}|Open>)", teamDomain: 'arm-dsg', tokenCredentialId: 'jenkins-slack', username: 'jenkins'
362cc1dc7a3Sopenharmony_ci      }
363cc1dc7a3Sopenharmony_ci    }
364cc1dc7a3Sopenharmony_ci  }
365cc1dc7a3Sopenharmony_ci}
366