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:
|
||||
- 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
|
||||
|
||||
@@ -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:
|
||||
- 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
|
||||
|
||||
@@ -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