编写jenkinsfile
最重要的一步来了!
首先看看jenkinsfile里面的信息
podTemplate(label: 'jnlp-slave', cloud: 'kubernetes', containers: [
containerTemplate(
name: 'jnlp',
image: '192.168.3.27:8888/ops/jenkins-slave4',
alwaysPullImage: true
),
],
volumes: [
hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock'),
hostPathVolume(mountPath: '/usr/bin/docker', hostPath: '/usr/bin/docker')
],
imagePullSecrets: ['registry-pull-secret']
)
{
node("jnlp-slave"){
stage('SVN Checkout'){
checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[cancelProcessOnExternalsFail: true, credentialsId: '0ead2dca-f930-453a-b142-389c89801271', depthOption: 'infinity', ignoreExternalsOption: true, local: '.', remote: 'https://192.168.xxx.xxx:8443/svn/xxxxx/trunk/05.Code/devPortal/webapp']], quietOperation: true, workspaceUpdater: [$class: 'UpdateUpdater']])
}
stage('Unit Testing'){
echo "Unit Testing..."
}
stage('Maven Build'){
echo "Maven Build..."
sh "/usr/local/maven/bin/mvn clean package --settings=/usr/local/maven/conf/settings.xml -Dmaven.test.skip=true"
}
stage('Build and Push Image'){
sh '''
docker login -u yfzx -p abcdefg123456 192.168.3.27:8888
docker build -t 192.168.3.27:8888/project/devportal -f deploy/Dockerfile .
docker push 192.168.3.27:8888/project/devportal
'''
}
stage('Deploy to K8S'){
sh '''
kubectl --kubeconfig=/root/.kube/config apply -f deploy/deploy.yaml
'''
}
stage('Testing'){
echo "Testing..."
}
}
}