1cc1dc7a3Sopenharmony_ci/* This pipeline is used for release testing, so it runs rarely. 2cc1dc7a3Sopenharmony_ci * 3cc1dc7a3Sopenharmony_ci * Test objectives for this pipeline are: 4cc1dc7a3Sopenharmony_ci * 5cc1dc7a3Sopenharmony_ci * - Run the entire pipeline in less than 60 minutes. 6cc1dc7a3Sopenharmony_ci * - Test builds on all supported operating systems. 7cc1dc7a3Sopenharmony_ci * - Test builds on optimized compiler choices (i.e. prefer Clang over GCC). 8cc1dc7a3Sopenharmony_ci * - Build only release variants. 9cc1dc7a3Sopenharmony_ci * - Run full functional tests. 10cc1dc7a3Sopenharmony_ci * - Run full image quality tests. 11cc1dc7a3Sopenharmony_ci * - Code sign the binaries on supported operating systems. 12cc1dc7a3Sopenharmony_ci * - Build the release package. 13cc1dc7a3Sopenharmony_ci * 14cc1dc7a3Sopenharmony_ci * The test matrix is not fully covered; e.g. we can assume compilers behave 15cc1dc7a3Sopenharmony_ci * similarly on different operating systems, so we test one compiler per OS. 16cc1dc7a3Sopenharmony_ci */ 17cc1dc7a3Sopenharmony_ci 18cc1dc7a3Sopenharmony_ci@Library('hive-infra-library@changes/86/295486/1') _ 19cc1dc7a3Sopenharmony_ci 20cc1dc7a3Sopenharmony_cipipeline { 21cc1dc7a3Sopenharmony_ci agent none 22cc1dc7a3Sopenharmony_ci 23cc1dc7a3Sopenharmony_ci options { 24cc1dc7a3Sopenharmony_ci ansiColor('xterm') 25cc1dc7a3Sopenharmony_ci timestamps() 26cc1dc7a3Sopenharmony_ci } 27cc1dc7a3Sopenharmony_ci 28cc1dc7a3Sopenharmony_ci stages { 29cc1dc7a3Sopenharmony_ci stage('Build All') { 30cc1dc7a3Sopenharmony_ci parallel { 31cc1dc7a3Sopenharmony_ci /* Run static analysis on Linux */ 32cc1dc7a3Sopenharmony_ci stage('Coverity') { 33cc1dc7a3Sopenharmony_ci agent { 34cc1dc7a3Sopenharmony_ci kubernetes { 35cc1dc7a3Sopenharmony_ci yaml ''' 36cc1dc7a3Sopenharmony_ciapiVersion: v1 37cc1dc7a3Sopenharmony_cikind: Pod 38cc1dc7a3Sopenharmony_cispec: 39cc1dc7a3Sopenharmony_ci securityContext: 40cc1dc7a3Sopenharmony_ci runAsUser: 1000 41cc1dc7a3Sopenharmony_ci runAsGroup: 1000 42cc1dc7a3Sopenharmony_ci imagePullSecrets: 43cc1dc7a3Sopenharmony_ci - name: artifactory-ms-docker 44cc1dc7a3Sopenharmony_ci containers: 45cc1dc7a3Sopenharmony_ci - name: astcenc 46cc1dc7a3Sopenharmony_ci image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.2.0 47cc1dc7a3Sopenharmony_ci command: 48cc1dc7a3Sopenharmony_ci - sleep 49cc1dc7a3Sopenharmony_ci args: 50cc1dc7a3Sopenharmony_ci - infinity 51cc1dc7a3Sopenharmony_ci resources: 52cc1dc7a3Sopenharmony_ci requests: 53cc1dc7a3Sopenharmony_ci cpu: 4 54cc1dc7a3Sopenharmony_ci memory: 8Gi 55cc1dc7a3Sopenharmony_ci''' 56cc1dc7a3Sopenharmony_ci defaultContainer 'astcenc' 57cc1dc7a3Sopenharmony_ci } 58cc1dc7a3Sopenharmony_ci } 59cc1dc7a3Sopenharmony_ci stages { 60cc1dc7a3Sopenharmony_ci stage('Clean') { 61cc1dc7a3Sopenharmony_ci steps { 62cc1dc7a3Sopenharmony_ci sh 'git clean -fdx' 63cc1dc7a3Sopenharmony_ci } 64cc1dc7a3Sopenharmony_ci } 65cc1dc7a3Sopenharmony_ci stage('Coverity') { 66cc1dc7a3Sopenharmony_ci steps { 67cc1dc7a3Sopenharmony_ci withCredentials([usernamePassword(credentialsId: 'jenkins-password', 68cc1dc7a3Sopenharmony_ci usernameVariable: 'USERNAME', 69cc1dc7a3Sopenharmony_ci passwordVariable: 'PASSWORD')]) { 70cc1dc7a3Sopenharmony_ci sh script: '''#!/bin/bash 71cc1dc7a3Sopenharmony_ci mkdir -p ${WORKSPACE}/occonfig 72cc1dc7a3Sopenharmony_ci 73cc1dc7a3Sopenharmony_ci mkdir build_cov 74cc1dc7a3Sopenharmony_ci cd build_cov 75cc1dc7a3Sopenharmony_ci 76cc1dc7a3Sopenharmony_ci cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_ISA_AVX2=ON .. 77cc1dc7a3Sopenharmony_ci 78cc1dc7a3Sopenharmony_ci cov-configure --config ${WORKSPACE}/coverity.conf --template --compiler cc --comptype gcc 79cc1dc7a3Sopenharmony_ci cov-configure --config ${WORKSPACE}/coverity.conf --template --compiler c++ --comptype g++ 80cc1dc7a3Sopenharmony_ci cov-build --config ${WORKSPACE}/coverity.conf --dir ${WORKSPACE}/intermediate make install 81cc1dc7a3Sopenharmony_ci cov-analyze --dir ${WORKSPACE}/intermediate 82cc1dc7a3Sopenharmony_ci cov-commit-defects --dir ${WORKSPACE}/intermediate \\ 83cc1dc7a3Sopenharmony_ci --stream astcenc-master \\ 84cc1dc7a3Sopenharmony_ci --url https://coverity.cambridge.arm.com \\ 85cc1dc7a3Sopenharmony_ci --user jenkins@arm.com --password ${PASSWORD} \\ 86cc1dc7a3Sopenharmony_ci --strip-path ${WORKSPACE} 87cc1dc7a3Sopenharmony_ci ''' 88cc1dc7a3Sopenharmony_ci } 89cc1dc7a3Sopenharmony_ci } 90cc1dc7a3Sopenharmony_ci } 91cc1dc7a3Sopenharmony_ci } 92cc1dc7a3Sopenharmony_ci } 93cc1dc7a3Sopenharmony_ci /* Build for Linux on x86-64 using Clang */ 94cc1dc7a3Sopenharmony_ci stage('Linux') { 95cc1dc7a3Sopenharmony_ci agent { 96cc1dc7a3Sopenharmony_ci kubernetes { 97cc1dc7a3Sopenharmony_ci yaml '''\ 98cc1dc7a3Sopenharmony_ci apiVersion: v1 99cc1dc7a3Sopenharmony_ci kind: Pod 100cc1dc7a3Sopenharmony_ci spec: 101cc1dc7a3Sopenharmony_ci securityContext: 102cc1dc7a3Sopenharmony_ci runAsUser: 1000 103cc1dc7a3Sopenharmony_ci runAsGroup: 1000 104cc1dc7a3Sopenharmony_ci imagePullSecrets: 105cc1dc7a3Sopenharmony_ci - name: artifactory-ms-docker 106cc1dc7a3Sopenharmony_ci containers: 107cc1dc7a3Sopenharmony_ci - name: astcenc 108cc1dc7a3Sopenharmony_ci image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.0.0 109cc1dc7a3Sopenharmony_ci command: 110cc1dc7a3Sopenharmony_ci - sleep 111cc1dc7a3Sopenharmony_ci args: 112cc1dc7a3Sopenharmony_ci - infinity 113cc1dc7a3Sopenharmony_ci resources: 114cc1dc7a3Sopenharmony_ci requests: 115cc1dc7a3Sopenharmony_ci cpu: 4 116cc1dc7a3Sopenharmony_ci memory: 8Gi 117cc1dc7a3Sopenharmony_ci limits: 118cc1dc7a3Sopenharmony_ci cpu: 8 119cc1dc7a3Sopenharmony_ci memory: 16Gi 120cc1dc7a3Sopenharmony_ci '''.stripIndent() 121cc1dc7a3Sopenharmony_ci defaultContainer 'astcenc' 122cc1dc7a3Sopenharmony_ci } 123cc1dc7a3Sopenharmony_ci } 124cc1dc7a3Sopenharmony_ci stages { 125cc1dc7a3Sopenharmony_ci stage('Clean') { 126cc1dc7a3Sopenharmony_ci steps { 127cc1dc7a3Sopenharmony_ci sh 'git clean -ffdx' 128cc1dc7a3Sopenharmony_ci } 129cc1dc7a3Sopenharmony_ci } 130cc1dc7a3Sopenharmony_ci stage('Build astcenc R x64') { 131cc1dc7a3Sopenharmony_ci steps { 132cc1dc7a3Sopenharmony_ci sh ''' 133cc1dc7a3Sopenharmony_ci export CXX=clang++-9 134cc1dc7a3Sopenharmony_ci mkdir build_rel 135cc1dc7a3Sopenharmony_ci cd build_rel 136cc1dc7a3Sopenharmony_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_PACKAGE=x64 .. 137cc1dc7a3Sopenharmony_ci make install package -j4 138cc1dc7a3Sopenharmony_ci ''' 139cc1dc7a3Sopenharmony_ci } 140cc1dc7a3Sopenharmony_ci } 141cc1dc7a3Sopenharmony_ci stage('Build astcdec R x64') { 142cc1dc7a3Sopenharmony_ci steps { 143cc1dc7a3Sopenharmony_ci sh ''' 144cc1dc7a3Sopenharmony_ci export CXX=clang++-9 145cc1dc7a3Sopenharmony_ci mkdir build_reldec 146cc1dc7a3Sopenharmony_ci cd build_reldec 147cc1dc7a3Sopenharmony_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_DECOMPRESSOR=ON .. 148cc1dc7a3Sopenharmony_ci make -j4 149cc1dc7a3Sopenharmony_ci ''' 150cc1dc7a3Sopenharmony_ci } 151cc1dc7a3Sopenharmony_ci } 152cc1dc7a3Sopenharmony_ci stage('Stash') { 153cc1dc7a3Sopenharmony_ci steps { 154cc1dc7a3Sopenharmony_ci dir('build_rel') { 155cc1dc7a3Sopenharmony_ci stash name: 'astcenc-linux-x64', includes: '*.zip' 156cc1dc7a3Sopenharmony_ci stash name: 'astcenc-linux-x64-hash', includes: '*.zip.sha256' 157cc1dc7a3Sopenharmony_ci } 158cc1dc7a3Sopenharmony_ci } 159cc1dc7a3Sopenharmony_ci } 160cc1dc7a3Sopenharmony_ci stage('Test') { 161cc1dc7a3Sopenharmony_ci steps { 162cc1dc7a3Sopenharmony_ci sh ''' 163cc1dc7a3Sopenharmony_ci python3 ./Test/astc_test_functional.py 164cc1dc7a3Sopenharmony_ci python3 ./Test/astc_test_image.py --encoder=all-x86 --test-set Small 165cc1dc7a3Sopenharmony_ci ''' 166cc1dc7a3Sopenharmony_ci } 167cc1dc7a3Sopenharmony_ci } 168cc1dc7a3Sopenharmony_ci } 169cc1dc7a3Sopenharmony_ci } 170cc1dc7a3Sopenharmony_ci /* Build for Windows on x86-64 using MSVC ClangCL */ 171cc1dc7a3Sopenharmony_ci stage('Windows') { 172cc1dc7a3Sopenharmony_ci agent { 173cc1dc7a3Sopenharmony_ci label 'Windows' 174cc1dc7a3Sopenharmony_ci } 175cc1dc7a3Sopenharmony_ci stages { 176cc1dc7a3Sopenharmony_ci stage('Clean') { 177cc1dc7a3Sopenharmony_ci steps { 178cc1dc7a3Sopenharmony_ci bat 'git clean -ffdx' 179cc1dc7a3Sopenharmony_ci } 180cc1dc7a3Sopenharmony_ci } 181cc1dc7a3Sopenharmony_ci stage('Build R x64') { 182cc1dc7a3Sopenharmony_ci steps { 183cc1dc7a3Sopenharmony_ci bat ''' 184cc1dc7a3Sopenharmony_ci call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvars64.bat 185cc1dc7a3Sopenharmony_ci mkdir build_rel 186cc1dc7a3Sopenharmony_ci cd build_rel 187cc1dc7a3Sopenharmony_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 .. 188cc1dc7a3Sopenharmony_ci msbuild astcencoder.sln -property:Configuration=Release 189cc1dc7a3Sopenharmony_ci msbuild PACKAGE.vcxproj -property:Configuration=Release 190cc1dc7a3Sopenharmony_ci msbuild INSTALL.vcxproj -property:Configuration=Release 191cc1dc7a3Sopenharmony_ci ''' 192cc1dc7a3Sopenharmony_ci } 193cc1dc7a3Sopenharmony_ci } 194cc1dc7a3Sopenharmony_ci stage('Build R Arm64') { 195cc1dc7a3Sopenharmony_ci steps { 196cc1dc7a3Sopenharmony_ci bat ''' 197cc1dc7a3Sopenharmony_ci call c:\\progra~2\\micros~1\\2022\\buildtools\\vc\\auxiliary\\build\\vcvarsall.bat x64_arm64 198cc1dc7a3Sopenharmony_ci mkdir build_rel_arm64 199cc1dc7a3Sopenharmony_ci cd build_rel_arm64 200cc1dc7a3Sopenharmony_ci cmake -G "Visual Studio 17 2022" -A ARM64 -T ClangCL -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_ISA_NEON=ON -DASTCENC_PACKAGE=arm64 .. 201cc1dc7a3Sopenharmony_ci msbuild astcencoder.sln -property:Configuration=Release 202cc1dc7a3Sopenharmony_ci msbuild PACKAGE.vcxproj -property:Configuration=Release 203cc1dc7a3Sopenharmony_ci msbuild INSTALL.vcxproj -property:Configuration=Release 204cc1dc7a3Sopenharmony_ci ''' 205cc1dc7a3Sopenharmony_ci } 206cc1dc7a3Sopenharmony_ci } 207cc1dc7a3Sopenharmony_ci stage('Sign') { 208cc1dc7a3Sopenharmony_ci steps { 209cc1dc7a3Sopenharmony_ci dir('sign_tools') { 210cc1dc7a3Sopenharmony_ci checkout changelog: false, 211cc1dc7a3Sopenharmony_ci poll: false, 212cc1dc7a3Sopenharmony_ci scm: [$class: 'GitSCM', 213cc1dc7a3Sopenharmony_ci branches: [[name: '*/main']], 214cc1dc7a3Sopenharmony_ci doGenerateSubmoduleConfigurations: false, 215cc1dc7a3Sopenharmony_ci extensions: [], 216cc1dc7a3Sopenharmony_ci submoduleCfg: [], 217cc1dc7a3Sopenharmony_ci userRemoteConfigs: [[credentialsId: 'gerrit-jenkins-ssh', 218cc1dc7a3Sopenharmony_ci url: 'ssh://mirror.eu-west-1.gerrit-eu01.aws.arm.com:29418/Hive/shared/signing']]] 219cc1dc7a3Sopenharmony_ci } 220cc1dc7a3Sopenharmony_ci withCredentials([usernamePassword(credentialsId: 'cepe-artifactory-jenkins', 221cc1dc7a3Sopenharmony_ci usernameVariable: 'AF_USER', 222cc1dc7a3Sopenharmony_ci passwordVariable: 'APIKEY')]) { 223cc1dc7a3Sopenharmony_ci powershell 'C:\\Python311\\python.exe .\\sign_tools\\windows-client-wrapper.py -b $Env:BUILD_NUMBER -t $Env:APIKEY (Get-ChildItem -Filter build_rel\\*.zip)[0].FullName' 224cc1dc7a3Sopenharmony_ci powershell 'C:\\Python311\\python.exe .\\sign_tools\\windows-client-wrapper.py -b $Env:BUILD_NUMBER -t $Env:APIKEY (Get-ChildItem -Filter build_rel_arm64\\*.zip)[0].FullName' 225cc1dc7a3Sopenharmony_ci } 226cc1dc7a3Sopenharmony_ci } 227cc1dc7a3Sopenharmony_ci } 228cc1dc7a3Sopenharmony_ci stage('Stash') { 229cc1dc7a3Sopenharmony_ci steps { 230cc1dc7a3Sopenharmony_ci dir('build_rel') { 231cc1dc7a3Sopenharmony_ci stash name: 'astcenc-windows-x64', includes: '*.zip' 232cc1dc7a3Sopenharmony_ci stash name: 'astcenc-windows-x64-hash', includes: '*.zip.sha256' 233cc1dc7a3Sopenharmony_ci } 234cc1dc7a3Sopenharmony_ci dir('build_rel_arm64') { 235cc1dc7a3Sopenharmony_ci stash name: 'astcenc-windows-arm64', includes: '*.zip' 236cc1dc7a3Sopenharmony_ci stash name: 'astcenc-windows-arm64-hash', includes: '*.zip.sha256' 237cc1dc7a3Sopenharmony_ci } 238cc1dc7a3Sopenharmony_ci } 239cc1dc7a3Sopenharmony_ci } 240cc1dc7a3Sopenharmony_ci stage('Test') { 241cc1dc7a3Sopenharmony_ci steps { 242cc1dc7a3Sopenharmony_ci bat ''' 243cc1dc7a3Sopenharmony_ci set Path=c:\\Python38;c:\\Python38\\Scripts;%Path% 244cc1dc7a3Sopenharmony_ci call python ./Test/astc_test_image.py --test-set Small 245cc1dc7a3Sopenharmony_ci ''' 246cc1dc7a3Sopenharmony_ci } 247cc1dc7a3Sopenharmony_ci } 248cc1dc7a3Sopenharmony_ci } 249cc1dc7a3Sopenharmony_ci } 250cc1dc7a3Sopenharmony_ci /* Build for macOS on x86-64 using Clang */ 251cc1dc7a3Sopenharmony_ci stage('macOS') { 252cc1dc7a3Sopenharmony_ci agent { 253cc1dc7a3Sopenharmony_ci label 'mac && x86_64 && notarizer' 254cc1dc7a3Sopenharmony_ci } 255cc1dc7a3Sopenharmony_ci stages { 256cc1dc7a3Sopenharmony_ci stage('Clean') { 257cc1dc7a3Sopenharmony_ci steps { 258cc1dc7a3Sopenharmony_ci sh 'git clean -ffdx' 259cc1dc7a3Sopenharmony_ci } 260cc1dc7a3Sopenharmony_ci } 261cc1dc7a3Sopenharmony_ci stage('Build R') { 262cc1dc7a3Sopenharmony_ci steps { 263cc1dc7a3Sopenharmony_ci sh ''' 264cc1dc7a3Sopenharmony_ci mkdir build_rel 265cc1dc7a3Sopenharmony_ci cd build_rel 266cc1dc7a3Sopenharmony_ci cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../ -DASTCENC_PACKAGE=universal .. 267cc1dc7a3Sopenharmony_ci make install package -j4 268cc1dc7a3Sopenharmony_ci ''' 269cc1dc7a3Sopenharmony_ci } 270cc1dc7a3Sopenharmony_ci } 271cc1dc7a3Sopenharmony_ci stage('Sign and notarize') { 272cc1dc7a3Sopenharmony_ci environment { 273cc1dc7a3Sopenharmony_ci NOTARIZATION_CREDS = credentials('notarization-account') 274cc1dc7a3Sopenharmony_ci } 275cc1dc7a3Sopenharmony_ci steps { 276cc1dc7a3Sopenharmony_ci dir('build_rel') { 277cc1dc7a3Sopenharmony_ci sh 'git clone ssh://eu-gerrit-1.euhpc.arm.com:29418/Hive/shared/signing' 278cc1dc7a3Sopenharmony_ci withCredentials([usernamePassword(credentialsId: 'win-signing', 279cc1dc7a3Sopenharmony_ci usernameVariable: 'USERNAME', 280cc1dc7a3Sopenharmony_ci passwordVariable: 'PASSWORD')]) { 281cc1dc7a3Sopenharmony_ci sh 'python3 ./signing/macos-client-wrapper.py ${USERNAME} *.zip' 282cc1dc7a3Sopenharmony_ci sh 'rm -rf ./signing' 283cc1dc7a3Sopenharmony_ci } 284cc1dc7a3Sopenharmony_ci } 285cc1dc7a3Sopenharmony_ci } 286cc1dc7a3Sopenharmony_ci } 287cc1dc7a3Sopenharmony_ci stage('Stash') { 288cc1dc7a3Sopenharmony_ci steps { 289cc1dc7a3Sopenharmony_ci dir('build_rel') { 290cc1dc7a3Sopenharmony_ci stash name: 'astcenc-macos-universal', includes: '*.zip' 291cc1dc7a3Sopenharmony_ci stash name: 'astcenc-macos-universal-hash', includes: '*.zip.sha256' 292cc1dc7a3Sopenharmony_ci } 293cc1dc7a3Sopenharmony_ci } 294cc1dc7a3Sopenharmony_ci } 295cc1dc7a3Sopenharmony_ci stage('Test') { 296cc1dc7a3Sopenharmony_ci steps { 297cc1dc7a3Sopenharmony_ci sh ''' 298cc1dc7a3Sopenharmony_ci export PATH=/usr/local/bin:$PATH 299cc1dc7a3Sopenharmony_ci python3 ./Test/astc_test_image.py --test-set Small --encoder universal 300cc1dc7a3Sopenharmony_ci ''' 301cc1dc7a3Sopenharmony_ci } 302cc1dc7a3Sopenharmony_ci } 303cc1dc7a3Sopenharmony_ci } 304cc1dc7a3Sopenharmony_ci } 305cc1dc7a3Sopenharmony_ci } 306cc1dc7a3Sopenharmony_ci } 307cc1dc7a3Sopenharmony_ci stage('Artifactory') { 308cc1dc7a3Sopenharmony_ci agent { 309cc1dc7a3Sopenharmony_ci kubernetes { 310cc1dc7a3Sopenharmony_ci yaml ''' 311cc1dc7a3Sopenharmony_ciapiVersion: v1 312cc1dc7a3Sopenharmony_cikind: Pod 313cc1dc7a3Sopenharmony_cispec: 314cc1dc7a3Sopenharmony_ci securityContext: 315cc1dc7a3Sopenharmony_ci runAsUser: 1000 316cc1dc7a3Sopenharmony_ci runAsGroup: 1000 317cc1dc7a3Sopenharmony_ci imagePullSecrets: 318cc1dc7a3Sopenharmony_ci - name: artifactory-ms-docker 319cc1dc7a3Sopenharmony_ci containers: 320cc1dc7a3Sopenharmony_ci - name: astcenc 321cc1dc7a3Sopenharmony_ci image: mobile-studio--docker.eu-west-1.artifactory.aws.arm.com/astcenc:3.0.0 322cc1dc7a3Sopenharmony_ci command: 323cc1dc7a3Sopenharmony_ci - sleep 324cc1dc7a3Sopenharmony_ci args: 325cc1dc7a3Sopenharmony_ci - infinity 326cc1dc7a3Sopenharmony_ci resources: 327cc1dc7a3Sopenharmony_ci requests: 328cc1dc7a3Sopenharmony_ci cpu: 1 329cc1dc7a3Sopenharmony_ci memory: 4Gi 330cc1dc7a3Sopenharmony_ci''' 331cc1dc7a3Sopenharmony_ci defaultContainer 'astcenc' 332cc1dc7a3Sopenharmony_ci } 333cc1dc7a3Sopenharmony_ci } 334cc1dc7a3Sopenharmony_ci options { 335cc1dc7a3Sopenharmony_ci skipDefaultCheckout true 336cc1dc7a3Sopenharmony_ci } 337cc1dc7a3Sopenharmony_ci stages { 338cc1dc7a3Sopenharmony_ci stage('Unstash') { 339cc1dc7a3Sopenharmony_ci steps { 340cc1dc7a3Sopenharmony_ci dir('upload') { 341cc1dc7a3Sopenharmony_ci unstash 'astcenc-windows-x64-hash' 342cc1dc7a3Sopenharmony_ci unstash 'astcenc-windows-arm64-hash' 343cc1dc7a3Sopenharmony_ci unstash 'astcenc-linux-x64-hash' 344cc1dc7a3Sopenharmony_ci unstash 'astcenc-macos-universal-hash' 345cc1dc7a3Sopenharmony_ci 346cc1dc7a3Sopenharmony_ci unstash 'astcenc-windows-x64' 347cc1dc7a3Sopenharmony_ci unstash 'astcenc-windows-arm64' 348cc1dc7a3Sopenharmony_ci unstash 'astcenc-linux-x64' 349cc1dc7a3Sopenharmony_ci unstash 'astcenc-macos-universal' 350cc1dc7a3Sopenharmony_ci 351cc1dc7a3Sopenharmony_ci sh 'cat *.sha256 > release-sha256.txt' 352cc1dc7a3Sopenharmony_ci sh 'rm *.sha256' 353cc1dc7a3Sopenharmony_ci } 354cc1dc7a3Sopenharmony_ci } 355cc1dc7a3Sopenharmony_ci } 356cc1dc7a3Sopenharmony_ci stage('Upload') { 357cc1dc7a3Sopenharmony_ci steps { 358cc1dc7a3Sopenharmony_ci zip zipFile: 'astcenc.zip', dir: 'upload', archive: false 359cc1dc7a3Sopenharmony_ci cepeArtifactoryUpload(sourcePattern: 'astcenc.zip') 360cc1dc7a3Sopenharmony_ci } 361cc1dc7a3Sopenharmony_ci } 362cc1dc7a3Sopenharmony_ci } 363cc1dc7a3Sopenharmony_ci post { 364cc1dc7a3Sopenharmony_ci always { 365cc1dc7a3Sopenharmony_ci deleteDir() 366cc1dc7a3Sopenharmony_ci } 367cc1dc7a3Sopenharmony_ci } 368cc1dc7a3Sopenharmony_ci } 369cc1dc7a3Sopenharmony_ci } 370cc1dc7a3Sopenharmony_ci} 371