60 lines
1.5 KiB
YAML
60 lines
1.5 KiB
YAML
variables:
|
|
DEPLOY_ENV: ''
|
|
DEPLOY_IMG: ''
|
|
REPO: 'chatgpt-frontend'
|
|
SERVICE_NAME: 'chatgpt-stack_chatgpt-frontend'
|
|
|
|
workflow:
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "dev" && $CI_PIPELINE_SOURCE == "push"
|
|
variables:
|
|
DEPLOY_ENV: 'dev'
|
|
DEPLOY_IMG: "${REPO}:${CI_COMMIT_SHORT_SHA}"
|
|
- if: $CI_COMMIT_TAG
|
|
variables:
|
|
DEPLOY_ENV: 'prod'
|
|
DEPLOY_IMG: "${REPO}:${CI_COMMIT_TAG}"
|
|
- when: never
|
|
stages:
|
|
# 编译阶段
|
|
- build
|
|
# 部署阶段(部署到测试环境/部署到生产环境)
|
|
- deploy
|
|
build-job:
|
|
stage: build
|
|
tags:
|
|
- builder
|
|
before_script:
|
|
- docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PWD} ${DOCKER_REGISTRY}
|
|
script:
|
|
- docker build -t ${DOCKER_REGISTRY}/${DEPLOY_IMG} .
|
|
- docker push ${DOCKER_REGISTRY}/${DEPLOY_IMG}
|
|
|
|
deploy-dev-job:
|
|
only:
|
|
variables:
|
|
- $DEPLOY_ENV == "dev"
|
|
stage: deploy
|
|
tags:
|
|
- deployer
|
|
variables:
|
|
CONF_RM_STR: ""
|
|
before_script:
|
|
- docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PWD} ${DOCKER_REGISTRY}
|
|
script:
|
|
- docker service update ${SERVICE_NAME} --image ${DOCKER_REGISTRY}/${DEPLOY_IMG}
|
|
|
|
deploy-prod-job:
|
|
only:
|
|
variables:
|
|
- $DEPLOY_ENV == "prod"
|
|
stage: deploy
|
|
tags:
|
|
- deployer
|
|
variables:
|
|
CONF_RM_STR: ""
|
|
before_script:
|
|
- docker login -u ${DOCKER_REGISTRY_USER} -p ${DOCKER_REGISTRY_PWD} ${DOCKER_REGISTRY}
|
|
script:
|
|
- docker service update ${SERVICE_NAME} --image ${DOCKER_REGISTRY}/${DEPLOY_IMG}
|