This repository was archived by the owner on Apr 5, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathJenkinsfile.yml
121 lines (118 loc) · 5.38 KB
/
Jenkinsfile.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
node('ccode'){
withEnv([
'REPO_Safestring=https://github.com/intel/safestringlib.git',
"TEST_DIR=${WORKSPACE}/sdo-test",
"MANUFACTURER_DB_CONNECT_STRING=jdbc:mariadb://127.0.0.1:3306/sdo",
"RESELLER_DB_CONNECT_STRING=jdbc:mariadb://127.0.0.1:4306/sdo"
])
{
stage('Clone Client-SDK'){
cleanWs()
dir('client-sdk'){
checkout scm
}
sh 'git clone "${REPO_Safestring}"'
}
stage('Build safestring'){
sh '''
cd $WORKSPACE/safestringlib
echo 'Building safestring'
git checkout v1.0.0
mkdir obj
make
'''
}
stage('Build ClientSDK'){
sh '''
export SAFESTRING_ROOT=$WORKSPACE/safestringlib
echo $SAFESTRING_ROOT
cd $WORKSPACE/client-sdk
$WORKSPACE/client-sdk/cDevice_Build.sh
tar -cvzf x86_ecdsa256_c_sct_bin.tar.gz ecdsa256_c_sct_device_bin
tar -cvzf x86_ecdsa384_c_sct_bin.tar.gz ecdsa384_c_sct_device_bin
'''
print "Archive the artifacts"
archiveArtifacts artifacts: 'client-sdk/x86_*.tar.gz', fingerprint: true, allowEmptyArchive: false
}
stage('Build TPM'){
sh '''
export SAFESTRING_ROOT=$WORKSPACE/safestringlib
cd $WORKSPACE/client-sdk
./cDevice_Build_tpm.sh
tar -cvzf tpm_ecdsa_c_device_bin.tar.gz tpm_ecdsa_c_device_bin
'''
print "Archive the artifacts"
archiveArtifacts artifacts: 'client-sdk/tpm_*.tar.gz', fingerprint: true, allowEmptyArchive: false
}
try{
stage('Run SmokeTest'){
checkout([$class: 'GitSCM', branches: [[name: '*/master']], extensions: [[$class: 'RelativeTargetDirectory', relativeTargetDir: 'sdo-test']], userRemoteConfigs: [[credentialsId: 'sdo-automationgithubtoken', url: 'https://github.com/secure-device-onboard-ci/sdo-test']]])
sh '''
mkdir -p sdo-test/binaries/pri
mkdir -p sdo-test/binaries/supply-chain-tools
mkdir -p sdo-test/binaries/rendezvous-service
mkdir -p sdo-test/binaries/client-sdk/x86_ecdsa256_sct_bin
mkdir -p sdo-test/binaries/client-sdk/x86_ecdsa384_sct_bin
'''
print "copying the dependent binaries from pri, supply-chain-tools and rendezvous-service"
copyArtifacts filter: 'demo.tar.gz', fingerprintArtifacts: true, projectName: 'pri/master', selector: lastSuccessful(), target: 'sdo-test/binaries/pri/'
copyArtifacts filter: 'demo.tar.gz', fingerprintArtifacts: true, projectName: 'supply-chain-tools/master', selector: lastSuccessful(), target: 'sdo-test/binaries/supply-chain-tools/'
copyArtifacts filter: 'demo.tar.gz', fingerprintArtifacts: true, projectName: 'rendezvous-service/master', selector: lastSuccessful(), target: 'sdo-test/binaries/rendezvous-service'
print "Extract the dependent binaries to respective folders"
sh '''
tar -xvzf sdo-test/binaries/pri/demo.tar.gz -C sdo-test/binaries/pri/ --strip=1
tar -xvzf sdo-test/binaries/supply-chain-tools/demo.tar.gz -C sdo-test/binaries/supply-chain-tools/ --strip=1
tar -xvzf sdo-test/binaries/rendezvous-service/demo.tar.gz -C sdo-test/binaries/rendezvous-service/ --strip=1
'''
print "Copy client-sdk artifacts to sdo-test/binaries folder"
sh '''
tar -xvzf client-sdk/x86_ecdsa256_c_sct_bin.tar.gz -C sdo-test/binaries/client-sdk/x86_ecdsa256_sct_bin/ --strip=1
cp sdo-test/testFiles/keys/ecdsa256privkey.dat sdo-test/binaries/client-sdk/x86_ecdsa256_sct_bin/data/
tar -xvzf client-sdk/x86_ecdsa384_c_sct_bin.tar.gz -C sdo-test/binaries/client-sdk/x86_ecdsa384_sct_bin/ --strip=1
cp sdo-test/testFiles/keys/ecdsa384privkey.dat sdo-test/binaries/client-sdk/x86_ecdsa384_sct_bin/data/
cp -r sdo-test/binaries/client-sdk sdo-test
'''
print "Create tomcat containers running manufacturer & db"
sh '''
cd sdo-test/binaries/supply-chain-tools/docker_manufacturer/
docker-compose up -d --build
docker logs manufacturer-mariadb
docker logs manufacturer
'''
print "Client-SDK Device smoke Tests with PRI-RV, SCT-Manufacturer"
sh '''
cd sdo-test
mvn clean verify -Dgroups=CdeviceTests
'''
print "Client-SDKDevice smoke Tests with Onprem-RV, SCT-Manufacturer"
sh '''
cd sdo-test
mvn clean verify -Dgroups=CdeviceOnPremTests
'''
}
} finally {
print "stop tomcat containers running manufacturer & db"
sh '''
docker logs manufacturer-mariadb > mariadbLog.txt
docker logs manufacturer > manufacturerLog.txt
docker stop $(docker ps -a -q)
docker rm -v $(docker ps -a -q) -f
docker system prune -a -f
docker images -a
docker volume ls
docker ps -a
'''
print "Archive the smoke test logs "
sh 'mkdir SmokeTest_Log'
sh '''
cp -r manufacturerLog.txt SmokeTest_Log/
cp -r mariadbLog.txt SmokeTest_Log/
cp -r sdo-test/logs/*_log.txt SmokeTest_Log/
tar -zcvf SmokeTest_Log.tar.gz SmokeTest_Log
'''
archiveArtifacts artifacts: 'SmokeTest_Log.tar.gz', fingerprint: true, allowEmptyArchive: false
}
//Clean workspace after build is successfull
cleanWs cleanWhenFailure: false, cleanWhenNotBuilt: false, notFailBuild: true
}
}