コンピューター構成: Windows 10、Asus Tianxuan、R9-4900H、RTX2060
1. 事前タスク
1. Docker の使用。
2. Jenkins の使用。
2. 準備
1. Docker デスクトップ クライアントを起動します。
2. Jenkins サービスを開始します。
3. スクリプトを書く
1.Dockerfile スクリプト ファイル。
自動化プロジェクト ディレクトリに Dockerfile ファイルを書き込み、カスタム イメージ ファイルを作成します。
# 获取镜像
FROM markadams/chromium-xvfb-py3
# 设置时区
ENV TZ 'Asia/Shanghai'
# 设置编码方式
ENV LANG C.UTF-8
# 设置环境变量
ENV PATH=$PATH:/code
# 安装字体
COPY ./resources/simsun.ttf /usr/share/fonts/ttf-dejavu/simsun.ttf
# 拷贝镜像源
COPY ./resources/sources.list /etc/apt/sources.list
# 添加代码到镜像
COPY . /code
# 更新apt-get
RUN apt-get update
# 安装pip
RUN apt-get install -y python3-pip --allow-unauthenticated
# 安装依赖
RUN pip3 install -r /code/requirements.txt
# 运行程序
CMD ["python3", "/code/main/main.py"]
2. Jenkins パイプライン スクリプト。
Jenkins プロジェクトを構築するための Jenkins パイプライン スクリプトを作成します。
pipeline {
agent any
environment {
/* Git用户名称 */
gitUsername = ''
/* 自动化仓库名称 */
repositoryName = ''
/* 自定义镜像名称 */
imageName = ''
/* 自定义镜像版本 */
imageTag = ''
/* 自定义容器名称 */
containerName = ''
}
stages {
stage('前置工作') {
steps {
echo '工作目录'
sh 'pwd'
echo '清理历史文件'
sh 'rm -rf ${WORKSPACE}/${repositoryName}'
echo '拉取项目'
sh 'git clone [email protected]:${gitUsername}/${repositoryName}.git'
echo '查看镜像'
sh 'docker images'
echo '查看容器'
sh 'docker ps -a'
echo '构建镜像'
sh '''cd ${repositoryName}/
docker build -t ${imageName}:${imageTag} .
'''
}
}
stage('执行测试') {
steps {
echo '运行容器'
sh 'docker run -i --name=${containerName} ${imageName}:${imageTag}'
}
}
stage('后置工作') {
steps {
echo '保存报告'
sh 'docker cp ${containerName}:/code/reports ./${repositoryName}/reports'
echo '删除容器'
sh 'docker rm ${containerName}'
echo '删除镜像'
sh 'docker rmi "${imageName}:${imageTag}"'
}
}
}
post {
success {
echo '查看镜像'
sh 'docker images'
echo '查看镜像'
sh 'docker ps -a'
echo '执行成功'
}
failure {
echo '查看镜像'
sh 'docker images'
echo '查看镜像'
sh 'docker ps -a'
echo '执行失败'
}
}
}
4. 操作手順
1. Jenkins にログインします。
2. パイプライン プロジェクトを作成します。
3. [OK] をクリックした後、[構成] -> [パイプライン] にパイプライン スクリプトを入力します。
4. [保存] をクリックした後、Jenkins プロジェクトを手動でビルドします。
5. 結果を表示します。
実行ステータスは、サンプル プロジェクトが完了まで実行されたことを示します。
コンソール出力には、サンプル プロジェクトの 6 つのテスト ケースが成功したことが示されています。