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] 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}