# 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: - > for stand in $STANDS; do echo -e "Connect to ${stand}..." && scp -o StrictHostKeyChecking=no ci/deploy/deploy.sh "dorootless@${stand}:~/deploy.sh" && ssh "dorootless@${stand}" "export CONTAINER_REGISTRY=$CONTAINER_REGISTRY && export PRODUCT=$PRODUCT && export PRODUCT_VERSION=$PRODUCT_VERSION && export IMAGE_NAME=$IMAGE_NAME && chmod 700 ~/deploy.sh && ~/deploy.sh ${IMAGE_NAME} && rm -f ~/deploy.sh" done needs: - job: build-image-npm optional: true