From cdc1915604cd9008faf889ca1822dc083783d17c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Fri, 20 Jun 2025 16:01:40 +0300 Subject: [PATCH 1/6] up --- ci/build/npm/build.inc.yml | 22 +++++++++++----------- ci/rules.yml | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ci/build/npm/build.inc.yml b/ci/build/npm/build.inc.yml index 3be45ef..4e595c5 100644 --- a/ci/build/npm/build.inc.yml +++ b/ci/build/npm/build.inc.yml @@ -11,19 +11,19 @@ build-npm: paths: - node_modules/ script: - # - | - # if [ -f "${CI_PROJECT_DIR}/VERSION" ]; then - # APPVERSION=$(cat ${CI_PROJECT_DIR}/VERSION) - # fi - # echo "APPVERSION(VERSION) ${APPVERSION}" + - | + 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 + if [[ -z "$APPVERSION" ]]; then + echo "APPVERSION is null" + exit 1 + fi + - echo VITE_VERSION = "$APPVERSION" >> .env - # - export PRODUCT="${PRODUCT_CLOUD}" + - export PRODUCT="${PRODUCT_CLOUD}" - npm install - npm run build diff --git a/ci/rules.yml b/ci/rules.yml index 1b74a07..9849945 100644 --- a/ci/rules.yml +++ b/ci/rules.yml @@ -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 From 5c212dcf12379e9e101961a4652ff33be0221fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 23 Jun 2025 09:22:21 +0300 Subject: [PATCH 2/6] up --- .gitlab-ci.yml | 42 +++++++-------------------------- ci/build/npm/build.inc.yml | 36 ---------------------------- ci/develop.yml | 48 ++++++++++++++++++++++++++++++++++++++ ci/rules.yml | 8 ------- ci/variables.yml | 13 ----------- 5 files changed, 56 insertions(+), 91 deletions(-) delete mode 100644 ci/build/npm/build.inc.yml create mode 100644 ci/develop.yml delete mode 100644 ci/rules.yml delete mode 100644 ci/variables.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b715c31..0f3a67a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,39 +1,13 @@ stages: - - prepare - - test - build - - build-image + - package - deploy -include: - - "ci/build/*.inc.yml" - - "ci/build/*/*.inc.yml" - - "ci/variables.yml" - - "ci/rules.yml" +variables: + DIST_DIR: "./src/.vitepress/dist" + CONTAINER_REGISTRY: harbor.vimpelcom.ru + PRODUCT_PROD: vega/beecloud + IMAGE_NAME: docs -# 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 +include: + - ci/develop.yml diff --git a/ci/build/npm/build.inc.yml b/ci/build/npm/build.inc.yml deleted file mode 100644 index 4e595c5..0000000 --- a/ci/build/npm/build.inc.yml +++ /dev/null @@ -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] diff --git a/ci/develop.yml b/ci/develop.yml new file mode 100644 index 0000000..ae2bdea --- /dev/null +++ b/ci/develop.yml @@ -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: + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci" + 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: + - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci" + before_script: + - cat /certs/ca.crt >> /etc/ssl/certs/ca-certificates.crt + - echo PRODUCT="$PRODUCT" >> .env + - echo PRODUCT_VERSION="$PRODUCT_VERSION" >> .env + - echo "$HARBOR_TOKEN" | 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 diff --git a/ci/rules.yml b/ci/rules.yml deleted file mode 100644 index 9849945..0000000 --- a/ci/rules.yml +++ /dev/null @@ -1,8 +0,0 @@ -.build-npm-rules: - rules: - - if: $CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "merge_request_event" - when: never - - if: $CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci") - exists: - - .npmrc - - ./*/.npmrc diff --git a/ci/variables.yml b/ci/variables.yml deleted file mode 100644 index 7aaa500..0000000 --- a/ci/variables.yml +++ /dev/null @@ -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} From fb688d43a1447717c8cbf3c123fc9483a23203b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 23 Jun 2025 09:37:56 +0300 Subject: [PATCH 3/6] up --- .gitlab-ci.yml | 1 + ci/develop.yml | 4 ++-- ci/rules.yml | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 ci/rules.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0f3a67a..dd236cf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,3 +11,4 @@ variables: include: - ci/develop.yml + - "ci/rules.yml" diff --git a/ci/develop.yml b/ci/develop.yml index ae2bdea..195b934 100644 --- a/ci/develop.yml +++ b/ci/develop.yml @@ -8,7 +8,7 @@ develop:npm: paths: - node_modules/ rules: - - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci" + - !reference [.build-npm-rules, rules] variables: PRODUCT: "$PRODUCT_PROD" script: @@ -28,7 +28,7 @@ develop-image: image: harbor.vimpelcom.ru/dockerhub/library/docker:20.10.11-dind stage: package rules: - - if: $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci" + - !reference [.build-npm-rules, rules] before_script: - cat /certs/ca.crt >> /etc/ssl/certs/ca-certificates.crt - echo PRODUCT="$PRODUCT" >> .env diff --git a/ci/rules.yml b/ci/rules.yml new file mode 100644 index 0000000..9849945 --- /dev/null +++ b/ci/rules.yml @@ -0,0 +1,8 @@ +.build-npm-rules: + rules: + - if: $CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "merge_request_event" + when: never + - if: $CI_PIPELINE_SOURCE == "push" && ($CI_COMMIT_BRANCH == "main" || $CI_COMMIT_BRANCH == "feature/ci") + exists: + - .npmrc + - ./*/.npmrc From 3603656735ffddaa951896bcca70cf464217d00c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 23 Jun 2025 09:40:34 +0300 Subject: [PATCH 4/6] up --- ci/develop.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/develop.yml b/ci/develop.yml index 195b934..bc0b9ba 100644 --- a/ci/develop.yml +++ b/ci/develop.yml @@ -33,7 +33,7 @@ develop-image: - cat /certs/ca.crt >> /etc/ssl/certs/ca-certificates.crt - echo PRODUCT="$PRODUCT" >> .env - echo PRODUCT_VERSION="$PRODUCT_VERSION" >> .env - - echo "$HARBOR_TOKEN" | docker login ${CONTAINER_REGISTRY} --username $HARBOR_USER --password-stdin + - 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 From 7458122717ce92c9d0ccda68168a2adbd87711ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 23 Jun 2025 11:30:32 +0300 Subject: [PATCH 5/6] up --- build.Dockerfile | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 build.Dockerfile diff --git a/build.Dockerfile b/build.Dockerfile new file mode 100644 index 0000000..9b9d65e --- /dev/null +++ b/build.Dockerfile @@ -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;"] From 32b58e1435e07470eee92ab3cf234bf71a3a6278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D1=83=D1=80=D0=B4=D0=B5=D0=BD=D0=BA=D0=BE=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Mon, 23 Jun 2025 16:22:54 +0300 Subject: [PATCH 6/6] up --- src/.vitepress/config.mts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/.vitepress/config.mts b/src/.vitepress/config.mts index f32d94b..8bbe209 100644 --- a/src/.vitepress/config.mts +++ b/src/.vitepress/config.mts @@ -37,12 +37,15 @@ const gitlab = ` ` +const new_version = process.env?.VITE_NEW_VERSION; +console.log({ base: typeof new_version !== 'undefined' ? '/' : '/docs/' }) + // https://vitepress.dev/reference/site-config export default defineConfig({ title: "BeeCloud Docs", description: "Документация публичного облака", head: [['link', { rel: 'icon', href: '/favicon.svg' }]], - base: '/', + base: typeof new_version !== 'undefined' ? '/' : '/docs/', markdown: { config(md) { md.use(tabsMarkdownPlugin)