75 lines
3.3 KiB
YAML
75 lines
3.3 KiB
YAML
# echo -e # ключ -e в комманде echo включает отображение "backslash escapes"; например \n - переход на следующую строку, \t -табуляция
|
|
# echo -n # ключ -n в команде echo сигнализирует, что после вывода информации не нужно переходить на следующую строку.
|
|
|
|
# - > переносы строк удаляются
|
|
# - | переносы строк не удаляются
|
|
|
|
# Git add
|
|
# - git submodule add -b main https://gitlab-ci-token:${CI_JOB_TOKEN}@$CI_SERVER_URL/products/vega/infra
|
|
# - git submodule sync --recursive
|
|
# - git submodule update --init --recursive
|
|
|
|
# # Прокидываем name + email, чтобы gitlab не сыпал ошибки
|
|
# - git config --global user.name "YourName"
|
|
# - git config --global user.email "YourEmail"
|
|
|
|
# # Вызываем наш скрипт, который инкрементирует версию
|
|
# - node bumpVersion.js
|
|
|
|
# # Добавляем и пушим наши изменения в ветку откуда стригерился pipeline
|
|
# - git add ./package.json
|
|
# - git commit -m "bump package.json version"
|
|
# # Используем опцию gitlab -o ci.skip, для того, чтобы наш коммит не тригерил новый pipeline
|
|
# - git push origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip
|
|
|
|
.deploy-template:
|
|
image: harbor.vimpelcom.ru/dockerhub/library/alpine
|
|
before_script:
|
|
- |
|
|
sed -i s%https://dl-cdn.alpinelinux.org/%http://rhrepo.vimpelcom.ru/ext/ya/mirrors/% /etc/apk/repositories && \
|
|
apk --no-cache add tzdata ca-certificates curl openssh-client yq jq && \
|
|
rm -rf /var/cache/apk/*
|
|
- which ssh-agent || (apt-get update -y && apt-get install openssh-client -y)
|
|
- eval $(ssh-agent -s)
|
|
- mkdir -p ~/.ssh
|
|
- echo -n "$TECH_SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa
|
|
- chmod 700 ~/.ssh
|
|
- chmod 600 ~/.ssh/id_rsa
|
|
# https://mikefarah.gitbook.io/yq/operators/traverse-read#nested-special-characters
|
|
- STANDS=$(echo "$STANDS" | yq '."'"${CI_COMMIT_REF_NAME}"'".[]')
|
|
- RED=$'\033[0;31m'
|
|
- RESET=$'\033[0m'
|
|
- >
|
|
if [[ -z "$STANDS" ]]; then
|
|
echo -e "${RED}STANDS for ${CI_COMMIT_REF_NAME:=CI_COMMIT_REF_NAME} is null${RESET}"
|
|
exit 1
|
|
fi
|
|
- >
|
|
for stand in $STANDS; do
|
|
echo "stand: ${stand}"
|
|
ssh-keyscan "${stand}" >> ~/.ssh/known_hosts
|
|
done
|
|
- chmod 644 ~/.ssh/known_hosts
|
|
# Если получилось что-то пустое
|
|
- >
|
|
if [[ -z "$APPVERSION" ]]; then
|
|
APPVERSION="0.0.1"
|
|
fi
|
|
script:
|
|
- mkdir -p ${CI_PROJECT_DIR}/utils/
|
|
- cd ${CI_PROJECT_DIR}/utils/
|
|
# - wget -q --no-check-certificate --output-document "deploy.sh" --header "PRIVATE-TOKEN:${GITLAB_TOKEN}" "https://git.vimpelcom.ru/api/v4/projects/9556/repository/files/ci%2Fdeploy%2Fdeploy.sh/raw"
|
|
- >
|
|
for stand in $STANDS; do
|
|
echo -e "Connect to ${stand}..." &&
|
|
ssh "dorootless@${stand}" "export CONTAINER_REGISTRY=$CONTAINER_REGISTRY &&
|
|
export PRODUCT=$PRODUCT &&
|
|
export PRODUCT_VERSION=$PRODUCT_VERSION &&
|
|
export IMAGE_NAME=$IMAGE_NAME"
|
|
done
|
|
needs:
|
|
- job: build-image-npm
|
|
optional: true
|
|
- job: build-image-go
|
|
optional: true
|