txw/txw-gxzx-web/devops/Jenkinsfile_TCTP
2026-04-05 15:05:13 +08:00

79 lines
2.0 KiB
Plaintext

pipeline {
agent any
stages {
stage('检出') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: GIT_BUILD_REF]],
userRemoteConfigs: [[
url: GIT_REPO_URL,
credentialsId: CREDENTIALS_ID
]]])
}
}
stage('产物构建') {
steps {
script {
env.TAG_VERSION = new Date().format('yyyyMMdd-HHmmss')
// 分解参数
def envs = env.ENV_INFO.split("\\|")
env.DEPLOY_ENV = envs[0]
env.PKG_VERSION = env.TAG_VERSION+'-'+env.DEPLOY_ENV
echo 'PKG_VERSION is: ' + env.PKG_VERSION
}
sh '''ls -la
pwd
echo '===== 开始解压node_modules ====='
tar -xf node_modules.tar.gz
echo '===== 完成解压node_modules ====='
echo '===== 开始 yarn 构建 ====='
yarn build:site
echo '===== 完成 yarn 构建 ====='
echo '===== 开始写入Dockerfile ====='
cat << EOF > Dockerfile
## 前端公共镜像
FROM ccr.ccs.tencentyun.com/tdesign-gov/tsf-web-public:0.0.1
## 添加代码压缩包到镜像中
ADD dist /usr/local/openresty/nginx/html/
WORKDIR /usr/local/openresty/nginx/
CMD ["sh", "-ec", "sh /root/tsf-consul-template-docker/script/start.sh; exec /usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf"]
EOF
cat Dockerfile
echo '===== 完成写入Dockerfile ====='
'''
}
}
stage('制作镜像') {
steps {
sh '''ls -la
pwd
echo '===== 开始构建docker部署镜像 ====='
docker build -t ${DOCKER_REPO}/${PROJECT_MODEL_NAME}:${PKG_VERSION} .
docker image ls
echo '===== 完成构建docker部署镜像 ====='
'''
}
}
stage('推送镜像') {
steps {
sh '''ls -la
pwd
echo '===== 开始推送docker部署镜像 ====='
docker login --username=${DOCKER_USERNAME} --password=${DOCKER_PASSWORD} ${DOCKER_REPO}
docker push ${DOCKER_REPO}/${PROJECT_MODEL_NAME}:${PKG_VERSION}
echo '===== 完成推送docker部署镜像 ====='
'''
}
}
}
}