Merge branch 'feature/ci' into 'main'
VEGA-4594 See merge request common/vega/beecloud-docs!3
This commit is contained in:
+9
-34
@@ -1,39 +1,14 @@
|
|||||||
stages:
|
stages:
|
||||||
- prepare
|
|
||||||
- test
|
|
||||||
- build
|
- build
|
||||||
- build-image
|
- package
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
include:
|
variables:
|
||||||
- "ci/build/*.inc.yml"
|
DIST_DIR: "./src/.vitepress/dist"
|
||||||
- "ci/build/*/*.inc.yml"
|
CONTAINER_REGISTRY: harbor.vimpelcom.ru
|
||||||
- "ci/variables.yml"
|
PRODUCT_PROD: vega/beecloud
|
||||||
|
IMAGE_NAME: docs
|
||||||
|
|
||||||
|
include:
|
||||||
|
- ci/develop.yml
|
||||||
- "ci/rules.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
|
|
||||||
|
|||||||
@@ -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;"]
|
||||||
@@ -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]
|
|
||||||
@@ -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
@@ -2,7 +2,7 @@
|
|||||||
rules:
|
rules:
|
||||||
- if: $CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "merge_request_event"
|
- if: $CI_COMMIT_BRANCH && $CI_PIPELINE_SOURCE == "merge_request_event"
|
||||||
when: never
|
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:
|
exists:
|
||||||
- .npmrc
|
- .npmrc
|
||||||
- ./*/.npmrc
|
- ./*/.npmrc
|
||||||
|
|||||||
@@ -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}
|
|
||||||
Reference in New Issue
Block a user