1 # 使用 docker
0 # 不用 docker
docker login $$CI_REGISTRY -u $$CI_REGISTRY_USER -p $$CI_REGISTRY_PASSWORD
docker logout $$CI_REGISTRY
docker rmi $$(docker images -a | grep none | awk '{print $$3}') || exit 0
kubectl set image deploy -lapp=$${CI_PROJECT_NAME} '*'=$${IMAGE_NAME}
. $$DEPLOY_MESSAGE
sh $$WEBHOOK_CALLER \
"$${DEPLOY_MESSAGE}
状态: 部署中"
test "$${USE_DOCKER:-1}" = '1' && sh $$DOCKER_LOGIN
test -f "$${PROJECT_PRE_TRIGGER}" && sh "$${PROJECT_PRE_TRIGGER}" || :
. \(DEPLOY_MESSAGE
sh\)WEBHOOK_CALLER
“\({DEPLOY_MESSAGE}
状态: 部署\){DEPLOY_RESULT_MSG}”
test “\({USE_DOCKER:-1}" = '1' && sh\)DOCKER_LOGOUT
test “\({DEPLOY_EXIT_CODE}" = '0' && test -f "\){PROJECT_POST_TRIGGER}” && sh “$${PROJECT_POST_TRIGGER}” || :
### WEBHOOK_CALLER
- WEBHOOK_URL
```bash
test "$${USE_DOCKER:-1}" = '1' && alias wget='docker run --rm mwendler/wget'
CONTENT='{"msgtype": "markdown","markdown":{"content": "'$$*'"}}'
CONTENT=$$(echo "$$CONTENT" | sed ':a;N;s/\n/\\n/;t a')
wget -O - --no-check-certificate --method=POST --body-data="$$CONTENT" $$WEBHOOK_URL
REF_MESSAGE=$$(git tag -l $$CI_COMMIT_TAG --format '%(contents)')
$${REF_MESSAGE}
”) ```
export BUILD_NAME=\(VERSION_NAME export BUILD_TIME=\)(echo \(BUILD_TIME | sed 's/[a-zA-Z][^0-9]*-//g') TARGET_PATH=\){TARGET_NAME:-\(CI_PROJECT_NAMESPACE}/\){TARGET_NAME:-\(CI_PROJECT_NAME}-\){CI_JOB_NAME}-\({BUILD_NAME}.\){TARGET_FILE##*.} chmod 400 \(DEPLOY_ID_RSA scp -i\)DEPLOY_ID_RSA -o ConnectTimeout=30 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -P 2222 \(TARGET_FILE\){SSH_USER}@\({SSH_HOST}:~/upload/\)TARGET_PATH
URL=”https://\({DOWNLOAD_PATH}/\){TARGET_PATH}” SIZE=\((ls -lah\)TARGET_FILE | awk ‘{print \(5}') sh\)WEBHOOK_CALLER “Name: \({TARGET_NAME:-\)CI_PROJECT_NAME}\nBuild: [\({CI_JOB_NAME}](\){CI_JOB_URL})\nURL: [\(URL](\)URL)\nSize: $${SIZE}” ```