Merge branch 'feature/ci' into 'main'

VEGA-4594

See merge request common/vega/beecloud-docs!3
This commit is contained in:
Бурденко Алексей Иванович
2025-06-23 08:33:36 +00:00
6 changed files with 70 additions and 84 deletions
+9 -34
View File
@@ -1,39 +1,14 @@
stages:
- prepare
- test
- build
- build-image
- package
- deploy
include:
- "ci/build/*.inc.yml"
- "ci/build/*/*.inc.yml"
- "ci/variables.yml"
variables:
DIST_DIR: "./src/.vitepress/dist"
CONTAINER_REGISTRY: harbor.vimpelcom.ru
PRODUCT_PROD: vega/beecloud
IMAGE_NAME: docs
include:
- ci/develop.yml
- "ci/rules.yml"
# default:
# image: harbor.vimpelcom.ru/dockerhub/library/docker:20.10.11-dind
# cache:
# paths:
# - node_modules/
# stages:
# - build
# - package
# - deploy
# variables:
# DIST_DIR: "./src/.vitepress/dist"
# DMZ_DIST_DIR: "./dmz-dist"
# CONTAINER_REGISTRY: harbor.vimpelcom.ru
# PRODUCT_FEATURE: vega/feature
# PRODUCT_FEATURE_STAND: vega/feature/stand
# PRODUCT_STAGE: vega/stage
# PRODUCT_DMZ: vega/dmz
# PRODUCT_PROD: vega
# IMAGE_NAME: docs
# include:
# - ci/feature.yml
# - ci/develop.yml
+12
View File
@@ -0,0 +1,12 @@
FROM --platform=linux/amd64 harbor.vimpelcom.ru/dockerhub/library/nginx:alpine
ARG DIST_DIR=./src/.vitepress/dist
ARG WROOT_DIR=/usr/share/nginx/html/docs
WORKDIR ${WROOT_DIR}
RUN rm -rf ./*
COPY ${DIST_DIR} ./
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
-36
View File
@@ -1,36 +0,0 @@
# - > переносы строк удаляются
# - | переносы строк не удаляются
build-npm:
image: harbor.vimpelcom.ru/dockerhub/library/node:lts
stage: build
cache:
- key:
files:
- package.json
paths:
- node_modules/
script:
# - |
# if [ -f "${CI_PROJECT_DIR}/VERSION" ]; then
# APPVERSION=$(cat ${CI_PROJECT_DIR}/VERSION)
# fi
# echo "APPVERSION(VERSION) ${APPVERSION}"
# if [[ -z "$APPVERSION" ]]; then
# echo "APPVERSION is null"
# exit 1
# fi
# - echo VITE_VERSION = "$APPVERSION" >> .env
# - export PRODUCT="${PRODUCT_CLOUD}"
- npm install
- npm run build
artifacts:
paths:
- "$NPM_DIST_DIR"
reports:
dotenv: .env
rules:
- !reference [.build-npm-rules, rules]
+48
View File
@@ -0,0 +1,48 @@
develop:npm:
image: harbor.vimpelcom.ru/dockerhub/library/node:lts
stage: build
cache:
- key:
files:
- package.json
paths:
- node_modules/
rules:
- !reference [.build-npm-rules, rules]
variables:
PRODUCT: "$PRODUCT_PROD"
script:
- export PRODUCT_VERSION=$(node -p "require('./package.json').version")
- echo PRODUCT_VERSION="$PRODUCT_VERSION" >> .env
- echo PRODUCT="$PRODUCT_PROD" >> .env
- npm install
- npm run build
artifacts:
paths:
- "$DIST_DIR"
reports:
dotenv: .env
expire_in: 1h
develop-image:
image: harbor.vimpelcom.ru/dockerhub/library/docker:20.10.11-dind
stage: package
rules:
- !reference [.build-npm-rules, rules]
before_script:
- cat /certs/ca.crt >> /etc/ssl/certs/ca-certificates.crt
- echo PRODUCT="$PRODUCT" >> .env
- echo PRODUCT_VERSION="$PRODUCT_VERSION" >> .env
- echo "$HARBOR_SECRET" | docker login ${CONTAINER_REGISTRY} --username $HARBOR_USER --password-stdin
script:
- docker build --build-arg DIST_DIR=${DIST_DIR} -f ./build.Dockerfile -t ${CONTAINER_REGISTRY}/${PRODUCT}/${IMAGE_NAME}:$PRODUCT_VERSION -t ${CONTAINER_REGISTRY}/${PRODUCT}/${IMAGE_NAME}:latest .
- docker push ${CONTAINER_REGISTRY}/${PRODUCT}/${IMAGE_NAME}:$PRODUCT_VERSION
- docker push ${CONTAINER_REGISTRY}/${PRODUCT}/${IMAGE_NAME}:latest
needs:
- job: develop:npm
artifacts: true
optional: true
artifacts:
# Передача env без импорта с помощью source
reports:
dotenv: .env
+1 -1
View File
@@ -2,7 +2,7 @@
rules:
- if: $CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
- if: $CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_BRANCH == "main"
- if: $CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci")
exists:
- .npmrc
- ./*/.npmrc
-13
View File
@@ -1,13 +0,0 @@
variables:
TEAM_NAME: vega
IMAGE_REGISTRY: harbor.vimpelcom.ru
CONTAINER_REGISTRY: ${IMAGE_REGISTRY}
NEXUS: https://nexus.vimpelcom.ru
NPM_DIST_DIR: "./src/.vitepress/dist"
IMAGE_NAME: ${CI_PROJECT_NAME}
PRODUCT_RELEASE: ${TEAM_NAME}
PRODUCT_DEVELOP: ${TEAM_NAME}/stage
PRODUCT_FEATURE: ${TEAM_NAME}/feature
PRODUCT_CLOUD: ${TEAM_NAME}/cloud
PRODUCT_VERSION: ${APPVERSION}