-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile-nas
47 lines (45 loc) · 1.42 KB
/
Jenkinsfile-nas
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
// Uses Declarative syntax to run commands inside a container.
pipeline {
agent {
kubernetes {
// Rather than inline YAML, in a multibranch Pipeline you could use: yamlFile 'jenkins-pod.yaml'
// Or, to avoid YAML:
// containerTemplate {
// name 'shell'
// image 'ubuntu'
// command 'sleep'
// args 'infinity'
// }
yaml '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: shell
image: ubuntu
command:
- sleep
args:
- infinity
'''
defaultContainer 'shell'
// mount nas to /home/jenkins/agent
workspaceVolume nfsWorkspaceVolume(serverAddress: "172.16.31.179", serverPath: "/nas", readOnly: false)
// set default workspace to /home/jenkins/agent/[flowExecutionId], used by each task in the one flow exection.
customWorkspace "/home/jenkins/agent/" + params.flowExecutionId
}
}
parameters {
string(name: 'flowExecutionId', defaultValue: '123456', description: 'Flow Execution ID')
}
stages {
stage('Main') {
steps {
sh "echo abc > abc; ls -al"
sh 'pwd; df -h; '
echo "Security Risk Example:"
sh "cd ..; ls -al; echo 'Switch to other pipeline instance workspace, get source code'"
}
}
}
}