gitlab-ci.yml 文件内容
image: localhost:5000/wondershare/ws-builder:latest
# Cache modules in between jobs
cache:
key: npm_cache
paths:
- node_modules/
stages:
- test
- build
- deploy
test:
tags:
- node
script:
- yarn && yarn run lint
build-image:
tags:
- node
stage: build
only:
- /^develop$/
- tags
- schedules
except:
- /^prod-/
- /export-srv/
script:
- bash ./scripts/build_staging_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG} ${CI_COMMIT_SHA}
deploy-image:
tags:
- deploy
stage: deploy
only:
- tags
- schedules
except:
- /^prod-/
- /export-srv/
script:
- bash ./scripts/deploy_staging_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG}
build-prod-image:
tags:
- node
stage: build
only:
- /^prod-/
except:
- /export-srv/
script:
- bash ./scripts/build_prod_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG} ${CI_COMMIT_SHA}
deploy-prod-image:
tags:
- deploy
stage: deploy
only:
- /^prod-/
except:
- /export-srv/
script:
- bash ./scripts/deploy_prod_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG}
build-export-srv:
tags:
- node
stage: build
only:
- /export-srv/
script:
- bash ./scripts/build_export_srv_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG}
deploy-export-srv:
tags:
- deploy
stage: deploy
only:
- /^export-srv-/
script:
- bash ./scripts/deploy_export_srv_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG}
deploy-prod-export-srv:
tags:
- deploy
stage: deploy
only:
- /^prod-export-srv-/
script:
- bash ./scripts/deploy_export_srv_prod_image.sh ${VERSION:-$CI_COMMIT_REF_SLUG}
after_script:
- date
./scripts/build_staging_image.sh
#!/bin/bash
DATE=`date +%Y%m%d%H%M-UTC`
CI_COMMIT_REF_SLUG=${1:-develop}
CI_COMMIT_SHA=${2:-unknown}
DOCKER_REGISTRY=localhost:5000
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/graph-design-editor:${CI_COMMIT_REF_SLUG}
echo "VUE_APP_COMMIT=${CI_COMMIT_SHA}" >> .env
echo "VUE_APP_TAG=${CI_COMMIT_REF_SLUG}" >> .env
echo "VUE_APP_BUILD=${DATE}" >> .env
yarn
NODE_ENV=staging yarn run build
docker build -t ${IMAGE_TAG} .
docker push ${IMAGE_TAG}
./scripts/deploy_staging_image.sh
#!/bin/bash
CI_COMMIT_REF_SLUG=${1:-develop}
DOCKER_REGISTRY=localhost:5100
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/graph-design-editor:${CI_COMMIT_REF_SLUG}
DOCKER_NAME=graph-design-editor
SSH_KEY_PATH=/tmp/ecs_ssh_key
STAGING_SERVER="10.10.17.44"
#STAGING_SERVER="10.10.17.64"
SSH_USER="sudo_root"
SSH_PORT="2016"
WS_REGISTRY="harbor01.wondershare.cn"
WS_IMAGE_TAG=${WS_REGISTRY}/n400/graph-design-editor:${CI_COMMIT_REF_SLUG}
echo "$ECS_SSH_KEY" > $SSH_KEY_PATH ; chmod 0600 $SSH_KEY_PATH
PROXY_COMMAND="ssh -W %h:%p -oStrictHostKeyChecking=no -i $SSH_KEY_PATH -l ws 10.14.1.1"
SSH_CMD="-oProxyCommand='$PROXY_COMMAND' -i $SSH_KEY_PATH -l $SSH_USER -p $SSH_PORT -oStrictHostKeyChecking=no $STAGING_SERVER"
bash -c "ssh ${SSH_CMD[@]} -R 5100:0:5000 docker pull $IMAGE_TAG"
bash -c "ssh ${SSH_CMD[@]} docker tag $IMAGE_TAG $WS_IMAGE_TAG"
bash -c "ssh ${SSH_CMD[@]} docker push $WS_IMAGE_TAG"
bash -c "ssh ${SSH_CMD[@]} docker rm -f $DOCKER_NAME"
bash -c "ssh ${SSH_CMD[@]} docker run -d -p 80:80 --name $DOCKER_NAME --restart=always $IMAGE_TAG"
if [ `echo $IMAGE_TAG | grep -c "stable"` -gt 0 ]; then
bash -c "ssh ${SSH_CMD[@]} docker run -d -p 88:80 --name $DOCKER_NAME-stable --restart=always $IMAGE_TAG"
fi
rm -f $SSH_KEY_PATH
exit 0
./scripts/build_prod_image.sh
#!/bin/bash
DATE=`date +%Y%m%d%H%M-UTC`
CI_COMMIT_REF_SLUG=${1:-develop}
CI_COMMIT_SHA=${2:-unknown}
DOCKER_REGISTRY=localhost:5000
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/graph-design-editor:${CI_COMMIT_REF_SLUG}
echo "VUE_APP_COMMIT=${CI_COMMIT_SHA}" >> .env
echo "VUE_APP_TAG=${CI_COMMIT_REF_SLUG}" >> .env
echo "VUE_APP_BUILD=${DATE}" >> .env
yarn
NODE_ENV=production yarn run build
docker build -t ${IMAGE_TAG} .
docker push ${IMAGE_TAG}
./scripts/deploy_prod_image.sh
#!/bin/bash
CI_COMMIT_REF_SLUG=${1:-develop}
DOCKER_REGISTRY=localhost:5100
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/graph-design-editor:${CI_COMMIT_REF_SLUG}
DOCKER_NAME=graph-design-editor-prod
SSH_KEY_PATH=/tmp/ecs_ssh_key
SSH_USER="eus_active_devadmin"
SSH_PORT="2018"
PROD_SERVER1="47.254.90.53"
PROD_SERVER2="47.254.90.101"
echo "$ECS_SSH_KEY" > $SSH_KEY_PATH ; chmod 0600 $SSH_KEY_PATH
for PROD_SERVER in $PROD_SERVER1 $PROD_SERVER2; do
SSH_CMD="-i $SSH_KEY_PATH -l $SSH_USER -p $SSH_PORT -oStrictHostKeyChecking=no $PROD_SERVER"
bash -c "ssh ${SSH_CMD[@]} -R 5100:0:5000 docker pull $IMAGE_TAG"
done
SSH_CMD="-i $SSH_KEY_PATH -l $SSH_USER -p $SSH_PORT -oStrictHostKeyChecking=no $PROD_SERVER1"
bash -c "ssh ${SSH_CMD[@]} docker service update --image $IMAGE_TAG --update-delay 30s --no-resolve-image --force $DOCKER_NAME"
rm -f $SSH_KEY_PATH
exit 0
./scripts/build_export_srv_image.sh
#!/bin/bash
DATE=`date +%Y%m%d%H%M-UTC`
CI_COMMIT_REF_SLUG=${1:-develop}
DOCKER_REGISTRY=localhost:5000
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/canvas-export:${CI_COMMIT_REF_SLUG}
cd srv/canvas-export
docker build -t ${IMAGE_TAG} .
docker push ${IMAGE_TAG}
./scripts/deploy_export_srv_image.sh
#!/bin/bash
CI_COMMIT_REF_SLUG=${1:-develop}
DOCKER_REGISTRY=localhost:5100
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/canvas-export:${CI_COMMIT_REF_SLUG}
DOCKER_NAME=canvas-export
SSH_KEY_PATH=/tmp/ecs_ssh_key
STAGING_SERVER="10.10.17.44"
SSH_USER="sudo_root"
SSH_PORT="2016"
WS_REGISTRY="harbor01.wondershare.cn"
WS_IMAGE_TAG=${WS_REGISTRY}/n400/canvas-export:${CI_COMMIT_REF_SLUG}
echo "$ECS_SSH_KEY" > $SSH_KEY_PATH ; chmod 0600 $SSH_KEY_PATH
PROXY_COMMAND="ssh -W %h:%p -oStrictHostKeyChecking=no -i $SSH_KEY_PATH -l ws 10.14.1.1"
SSH_CMD="-oProxyCommand='$PROXY_COMMAND' -i $SSH_KEY_PATH -l $SSH_USER -p $SSH_PORT -oStrictHostKeyChecking=no $STAGING_SERVER"
bash -c "ssh ${SSH_CMD[@]} -R 5100:0:5000 docker pull $IMAGE_TAG"
bash -c "ssh ${SSH_CMD[@]} docker tag $IMAGE_TAG $WS_IMAGE_TAG"
bash -c "ssh ${SSH_CMD[@]} docker push $WS_IMAGE_TAG"
bash -c "ssh ${SSH_CMD[@]} docker rm -f $DOCKER_NAME"
bash -c "ssh ${SSH_CMD[@]} docker run -d --net host --name $DOCKER_NAME -e MC_ADDR=172.17.0.1:11211 --restart=always $IMAGE_TAG"
rm -f $SSH_KEY_PATH
exit 0
./scripts/deploy_export_srv_prod_image.sh
#!/bin/bash
CI_COMMIT_REF_SLUG=${1:-develop}
DOCKER_REGISTRY=localhost:5100
IMAGE_TAG=${DOCKER_REGISTRY}/wondershare/canvas-export:${CI_COMMIT_REF_SLUG}
DOCKER_NAME=canvas-export-prod
SSH_KEY_PATH=/tmp/ecs_ssh_key
SSH_USER="eus_active_devadmin"
SSH_PORT="2018"
PROD_SERVER1="47.254.90.53"
PROD_SERVER2="47.254.90.101"
echo "$ECS_SSH_KEY" > $SSH_KEY_PATH ; chmod 0600 $SSH_KEY_PATH
for PROD_SERVER in $PROD_SERVER1 $PROD_SERVER2; do
SSH_CMD="-i $SSH_KEY_PATH -l $SSH_USER -p $SSH_PORT -oStrictHostKeyChecking=no $PROD_SERVER"
bash -c "ssh ${SSH_CMD[@]} -R 5100:0:5000 docker pull $IMAGE_TAG"
done
SSH_CMD="-i $SSH_KEY_PATH -l $SSH_USER -p $SSH_PORT -oStrictHostKeyChecking=no $PROD_SERVER1"
bash -c "ssh ${SSH_CMD[@]} docker service update --image $IMAGE_TAG --update-delay 30s --no-resolve-image --force $DOCKER_NAME"
rm -f $SSH_KEY_PATH
exit 0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)