代码拉取完成,页面将自动刷新
image: ${image}
stages:
- auto
- deploy_to_test
- deploy_to_rc
- deploy_to_prod
cache:
key: ${CI_PROJECT_NAME}
paths:
- node_modules/
before_script:
- test -z ${CI_PROJECT_NAME} && exit 1
- test -z ${test_ip} && exit 1
- test -z ${rc_ip} && exit 1
- test -z ${prod_ip} && exit 1
- test -z ${prod_ip_jdk} && exit 1
- test -z ${port} && exit 1
- test -z ${debug} || sleep 600
- echo "${devops_ip} ${devops_domain}" >>/etc/hosts
auto_deploy_prod:
stage: auto
script:
- python /root/auto_deploy_prod.py
only:
- master
tags:
- shared_runner_tags
cache: {}
when: manual
deploy_test:
stage: deploy_to_test
script:
- if [[ "$CI_COMMIT_MESSAGE" == *"$PUBLIC_TAG"* ]]; then
ssh-keyscan -H -t ecdsa -p ${port} ${test_ip} > ~/.ssh/known_hosts;
rsync -avztmH -e "ssh -p ${port}" ./public/ ${test_ip}:/kuaibao/www/${STATIC_NAME:="unset"}/static/${CI_PROJECT_NAME:="unset"}/;
echo '仅上传public文件夹,后续任务中断...';
exit 0;
fi
- npm run deploy test '${dd_access_token}' '${dd_secret}' '${CI_COMMIT_MESSAGE}'
- ssh-keyscan -H -t ecdsa -p ${port} ${test_ip} > ~/.ssh/known_hosts
- rsync -avztmH -e "ssh -p ${port}" --exclude-from="exclude.txt" --delete ./dist/ ${test_ip}:/kuaibao/www/${STATIC_NAME:="unset"}/static/${CI_PROJECT_NAME:="unset"}/
- rsync -avztH -e "ssh -p ${port}" --include-from="include.txt" --delete ./dist/ ${test_ip}:/kuaibao/www/${PHP_PROJECT_NAME:="unset"}/public/${DIST_NAME:='dist'}/
- if [[ ${PHP_PROJECT_NAME_INDEX} ]]; then
rsync -avztH -e "ssh -p ${port}" dist/index.html ${test_ip}:/kuaibao/www/${PHP_PROJECT_NAME}/${PHP_PROJECT_NAME_INDEX};
fi
only:
- test
tags:
- shared_runner_tags
deploy_rc:
stage: deploy_to_rc
script:
- npm run deploy deploy_rc '${dd_access_token}' '${dd_secret}' '${CI_COMMIT_MESSAGE}'
- ssh-keyscan -H -t ecdsa -p ${port} ${rc_ip} > ~/.ssh/known_hosts
- rsync -avztmH -e "ssh -p ${port}" --exclude-from="exclude.txt" --delete ./dist/ ${rc_ip}:/kuaibao/www/${STATIC_NAME:="unset"}/static/${CI_PROJECT_NAME:="unset"}/
- rsync -avztH -e "ssh -p ${port}" --include-from="include.txt" --delete ./dist/ ${rc_ip}:/kuaibao/www/${PHP_PROJECT_NAME:="unset"}/public/${DIST_NAME:='dist'}/
- if [[ ${PHP_PROJECT_NAME_INDEX} ]]; then
rsync -avztH -e "ssh -p ${port}" dist/index.html ${rc_ip}:/kuaibao/www/${PHP_PROJECT_NAME}/${PHP_PROJECT_NAME_INDEX};
fi
- if [[ ${PHP_PROJECT_NAME_RC} ]]; then
rsync -avztH -e "ssh -p ${port}" --include-from="include.txt" --delete ./dist/ ${rc_ip}:/kuaibao/www/${PHP_PROJECT_NAME_RC:="unset"}/public/${DIST_NAME:='dist'}/;
rsync -avztH -e "ssh -p ${port}" dist/index.html ${rc_ip}:/kuaibao/www/${PHP_PROJECT_NAME_RC}/${PHP_PROJECT_NAME_INDEX};
fi
#- python /root/sendmail.py
only:
- tags
except:
- /^v\d*.\d+.\d+$/
- /^\d+$/
tags:
- shared_runner_tags
deploy_prod:
stage: deploy_to_prod
script:
- if [[ "$CI_COMMIT_MESSAGE" == *"$PUBLIC_TAG"* ]]; then
ssh-keyscan -H -t ecdsa -p ${port} ${prod_ip} > ~/.ssh/known_hosts;
rsync -avztmH -e "ssh -p ${port}" ./public/ ${prod_ip}:/kuaibao/www/${STATIC_NAME:="unset"}/static/${CI_PROJECT_NAME:="unset"}/;
echo '仅上传public文件夹,后续任务中断...';
exit 0;
fi
- if [[ ${PHP_PROJECT_NAME} == 'kuaidihelp_m' ]];
then
prod_ip_jdk=${prod_ip_m};
echo m站,将prod_ip_jdk更新为prod_ip_m;
elif [[ ${CI_PROJECT_NAME} == 'kuaidihelp_wzg' ]];
then
prod_ip_jdk=${prod_ip_wzg};
echo 微掌柜,将prod_ip_jdk更新为prod_ip_wzg;
elif [[ ${CI_PROJECT_NAME} != 'judanke_'* ]];
then
prod_ip_jdk=${prod_ip};
echo 非聚单客项目,将prod_ip_jdk更新为prod_ip;
fi;
- npm run deploy deploy '${dd_access_token}' '${dd_secret}' '${CI_COMMIT_MESSAGE}'
- ssh-keyscan -H -t ecdsa -p ${port} ${prod_ip} > ~/.ssh/known_hosts
- rsync -avztmH -e "ssh -p ${port}" --exclude-from="exclude.txt" --delete ./dist/ ${prod_ip}:/kuaibao/www/${STATIC_NAME:="unset"}/static/${CI_PROJECT_NAME:="unset"}/
- ssh-keyscan -H -t ecdsa -p ${port} ${prod_ip_jdk} > ~/.ssh/known_hosts
- rsync -avztH -e "ssh -p ${port}" --include-from="include.txt" --delete ./dist/ ${prod_ip_jdk}:/kuaibao/www/${PHP_PROJECT_NAME:="unset"}/public/${DIST_NAME:='dist'}/
- if [[ ${PHP_PROJECT_NAME_INDEX} ]]; then
rsync -avztH -e "ssh -p ${port}" dist/index.html ${prod_ip_jdk}:/kuaibao/www/${PHP_PROJECT_NAME}/${PHP_PROJECT_NAME_INDEX};
fi
- python /root/sendmail.py
only:
- tags
except:
- /^v.\d+.\d+(?i:rc)$/
- /^\d+(?i:rc)$/
tags:
- shared_runner_tags
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。