-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
74 lines (66 loc) · 2.25 KB
/
Jenkinsfile
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
pipeline {
agent any
environment {
SF_CONSUMER_KEY = "${env.SF_CONSUMER_KEY}"
SF_USERNAME = "${env.SF_USERNAME}"
SERVER_KEY_PASSWORD = "${env.SERVER_KEY_PASSWORD}"
TEST_LEVEL = 'RunLocalTests'
SCRATCH_ORG_ALIAS = 'developmentOrg'
ROOTDIR = 'force-app/main/default/'
}
stages {
stage('checkout source') {
steps {
checkout scm
}
}
stage('Decrypt server key') {
steps {
script {
sh 'openssl aes-256-cbc -d -in assets/server.key.enc -out assets/server.key -k ${SERVER_KEY_PASSWORD} -pbkdf2'
echo 'successfully decrypted'
}
}
}
stage('Authorize DevHub') {
steps {
script {
sh 'sf org login jwt --client-id ${SF_CONSUMER_KEY} --jwt-key-file assets/server.key --username ${SF_USERNAME} --alias pradeepDevOrg --set-default-dev-hub'
echo 'Authorization successful'
}
}
}
stage('Create a new Scratch org') {
steps {
script {
sh 'sf org create scratch --definition-file config/project-scratch-def.json --set-default --alias ${SCRATCH_ORG_ALIAS} --duration-days 7 --wait 30'
echo 'Created Scratch Org'
}
}
}
stage('Push source to scratch org') {
steps {
script {
sh 'sf project deploy start --source-dir ${ROOTDIR} --target-org ${SCRATCH_ORG_ALIAS}'
echo 'Source code has been pushed to scratch org'
}
}
}
stage('Test the deployment') {
steps {
script {
sh 'sf apex run test --target-org ${SCRATCH_ORG_ALIAS}'
echo 'All Test cases passed'
}
}
}
stage('Delete Scratch Org') {
steps {
script {
sh 'sf org delete scratch --target-org ${SCRATCH_ORG_ALIAS} --no-prompt'
echo 'Deleted Scratch org'
}
}
}
}
}