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