今天,我们来看一个完整的 pipeline。
这个 pipeline 主要有三个步骤,从 git 获取代码(Pull),然后进行代码测试,测试完成后,进行 Build。
需要注意的,在没有配置过的 Jenkins 上面运行该 pipeline 会失败的,比方说,我们用于测试的 pylint,你需要在你的 Jenkins 上面安装该软件包,才能使用该命令。还有我们示例代码是 Django 的,所以需要配置 Django 的环境。
Build 过程,需要使用 docker,所以这里在将 docker build 换成了 echo docker build...。
最后,我们还使用了一个 post,使用 cleanup,进行环境清理,它会删除 workspace 中的所有文件,同时还会清理 Docker build 的缓存。
pipeline {
agent any
stages {
stage('Pull') {
steps {
retry(3) {
git branch: 'master', url: 'https://github.com/Aaron-Yu1/mysite_django.git'
}
}
}
stage('Test') {
steps {
sh 'pylint --rcfile=pylint.conf base'
sh 'echo Unit Testing...'
}
}
stage('Build') {
steps {
sh '''
mkdir django
mv $(ls --ignore=django --ignore=nginx_dockerfile --ignore=django_dockerfile) django
cd django
tar -zcvf Django.tar.gz ./*
cp Django.tar.gz ../django_dockerfile
cd ../django_dockerfile
echo docker build -t django:v1 .
cd ../nginx_dockerfile
echo docker build -t nginx:v1 .
'''
}
}
}
post {
cleanup {
sh '''
rm -rf ./*
echo docker builder prune -f
'''
}
}
}