Merge branch 'develop' into 'release'
1 See merge request yescent/yes.blog!16
This commit is contained in:
@@ -4,27 +4,20 @@ stages:
|
|||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
HARBOR_PROJECT: "yescent"
|
Namespace: "yescent"
|
||||||
ProjectName: "Yes.Blog"
|
ProjectName: "Yes.Blog"
|
||||||
PackageName: "yes.blog"
|
PackageName: "yes.blog"
|
||||||
AppPort: "9009"
|
AppPort: "9009"
|
||||||
|
|
||||||
DockerfilePath: "./${ProjectName}/Dockerfile"
|
DockerfilePath: "./${ProjectName}/Dockerfile"
|
||||||
#DockerImage: "${HARBOR_HOST}/${HARBOR_PROJECT}/${PackageName}"
|
DockerImage: "${Ali_Docker_Registry}/${Namespace}/${PackageName}"
|
||||||
DockerImage: "${Ali_Docker_Registry}/yescent/${PackageName}"
|
|
||||||
#ProductionDockerImage: "${HARBOR_HOST}/${HARBOR_PROJECT}/${PackageName}"
|
|
||||||
ProductionDockerImage: "${Ali_Docker_Registry}/yescent/${PackageName}"
|
|
||||||
AliDockerImage: "${Ali_Docker_Registry}/yescent/${PackageName}"
|
|
||||||
|
|
||||||
build_develop:
|
build_develop:
|
||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
||||||
- echo "${DockerImage}:v${Version}-develop${CI_PIPELINE_ID}"
|
- docker build -f ${DockerfilePath} -t ${DockerImage}:v${Version}-develop${CI_PIPELINE_ID} .
|
||||||
- docker build -f ${DockerfilePath} -t ${ProductionDockerImage}:v${Version}-develop${CI_PIPELINE_ID} .
|
|
||||||
#- docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry}
|
|
||||||
#- docker push ${DockerImage}:v${Version}-develop${CI_PIPELINE_ID}
|
|
||||||
|
|
||||||
only:
|
only:
|
||||||
- develop
|
- develop
|
||||||
|
|
||||||
@@ -34,9 +27,9 @@ build_release:
|
|||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
||||||
- docker build -f ${DockerfilePath} -t ${ProductionDockerImage}:v${Version}-release${CI_PIPELINE_ID} .
|
- docker build -f ${DockerfilePath} -t ${DockerImage}:v${Version}-release${CI_PIPELINE_ID} .
|
||||||
- docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry}
|
- docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry}
|
||||||
- docker push ${ProductionDockerImage}:v${Version}-release${CI_PIPELINE_ID}
|
- docker push ${DockerImage}:v${Version}-release${CI_PIPELINE_ID}
|
||||||
only:
|
only:
|
||||||
- release
|
- release
|
||||||
|
|
||||||
@@ -45,41 +38,15 @@ build_master:
|
|||||||
stage: build
|
stage: build
|
||||||
script:
|
script:
|
||||||
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
||||||
- docker build -f ${DockerfilePath} -t ${AliDockerImage}:v${Version}.${CI_PIPELINE_ID} .
|
- docker build -f ${DockerfilePath} -t ${DockerImage}:v${Version}.${CI_PIPELINE_ID} .
|
||||||
- docker tag ${AliDockerImage}:v${Version}.${CI_PIPELINE_ID} ${AliDockerImage}:latest
|
- docker tag ${DockerImage}:v${Version}.${CI_PIPELINE_ID} ${DockerImage}:latest
|
||||||
- docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry}
|
- docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry}
|
||||||
- docker push ${AliDockerImage}:v${Version}.${CI_PIPELINE_ID}
|
- docker push ${DockerImage}:v${Version}.${CI_PIPELINE_ID}
|
||||||
- docker rm -f ${AliDockerImage}:latest && docker push ${AliDockerImage}:latest
|
- docker rm -f ${DockerImage}:latest && docker push ${DockerImage}:latest
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
|
|
||||||
deploy_develop:
|
|
||||||
stage: deploy
|
|
||||||
before_script:
|
|
||||||
- Version=$(sed -n 's/.*<Version>\([^<]*\)<\/Version>.*/\1/p' ./${ProjectName}/${ProjectName}.csproj)
|
|
||||||
## 安装ssh-agent
|
|
||||||
- 'command -v ssh-agent >/dev/null || ( apt-get update -y && apt-get install openssh-client -y )'
|
|
||||||
- eval $(ssh-agent -s)
|
|
||||||
|
|
||||||
## 将GitLab服务器私钥添加到ssh-agent代理中
|
|
||||||
- chmod 400 "$SSH_PRIVATE_KEY"
|
|
||||||
- ssh-add "$SSH_PRIVATE_KEY"
|
|
||||||
|
|
||||||
## 创建~/.ssh目录
|
|
||||||
- mkdir -p ~/.ssh
|
|
||||||
- chmod 700 ~/.ssh
|
|
||||||
|
|
||||||
## 创建SSH_KNOWN_HOSTS
|
|
||||||
- echo "SSH_KNOWN_HOSTS = $SSH_KNOWN_HOSTS"
|
|
||||||
- cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts
|
|
||||||
- chmod 644 ~/.ssh/known_hosts
|
|
||||||
script:
|
|
||||||
- ssh -t 192.168.31.123 "(docker stop ${PackageName} && docker rm ${PackageName} || echo 'Container ${PackageName} not found, skipping removal.') && docker login -u ${HARBOR_USERNAME} -p ${HARBOR_PASSWORD} ${HARBOR_HOST} && docker run -e TZ=Asia/Shanghai -d --restart=always -v /data/yesblog:/app/files --name ${PackageName} -p ${AppPort}:8080 ${DockerImage}:v${Version}-develop${CI_PIPELINE_ID}"
|
|
||||||
only:
|
|
||||||
- develop1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
deploy_production:
|
deploy_production:
|
||||||
stage: deploy
|
stage: deploy
|
||||||
@@ -101,6 +68,6 @@ deploy_production:
|
|||||||
- cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts
|
- cp "$SSH_KNOWN_HOSTS" ~/.ssh/known_hosts
|
||||||
- chmod 644 ~/.ssh/known_hosts
|
- chmod 644 ~/.ssh/known_hosts
|
||||||
script:
|
script:
|
||||||
- ssh -t ${Server_Ip} "(docker stop ${PackageName} && docker rm ${PackageName} || echo 'Container ${PackageName} not found, skipping removal.') && docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry} && docker run -e TZ=Asia/Shanghai -d --restart=always -v /data/yesblog:/app/files --name ${PackageName} -p ${AppPort}:8080 ${ProductionDockerImage}:v${Version}-release${CI_PIPELINE_ID}"
|
- ssh -t ${Server_Ip} "(docker stop ${PackageName} && docker rm ${PackageName} || echo 'Container ${PackageName} not found, skipping removal.') && docker login -u ${Ali_Docker_UserName} -p ${Ali_Docker_Password} ${Ali_Docker_Registry} && docker run -e TZ=Asia/Shanghai -d --restart=always -v /data/yesblog:/app/files --name ${PackageName} -p ${AppPort}:8080 ${DockerImage}:v${Version}-release${CI_PIPELINE_ID}"
|
||||||
only:
|
only:
|
||||||
- release
|
- release
|
||||||
|
|||||||
Reference in New Issue
Block a user