2025-06-23 09:22:21 +03:00
|
|
|
develop:npm:
|
|
|
|
|
image: harbor.vimpelcom.ru/dockerhub/library/node:lts
|
|
|
|
|
stage: build
|
|
|
|
|
cache:
|
|
|
|
|
- key:
|
|
|
|
|
files:
|
|
|
|
|
- package.json
|
|
|
|
|
paths:
|
|
|
|
|
- node_modules/
|
|
|
|
|
rules:
|
2025-06-23 09:37:56 +03:00
|
|
|
- !reference [.build-npm-rules, rules]
|
2025-06-23 09:22:21 +03:00
|
|
|
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:
|
2025-06-23 09:37:56 +03:00
|
|
|
- !reference [.build-npm-rules, rules]
|
2025-06-23 09:22:21 +03:00
|
|
|
before_script:
|
|
|
|
|
- cat /certs/ca.crt >> /etc/ssl/certs/ca-certificates.crt
|
|
|
|
|
- echo PRODUCT="$PRODUCT" >> .env
|
|
|
|
|
- echo PRODUCT_VERSION="$PRODUCT_VERSION" >> .env
|
2025-06-23 09:40:34 +03:00
|
|
|
- echo "$HARBOR_SECRET" | docker login ${CONTAINER_REGISTRY} --username $HARBOR_USER --password-stdin
|
2025-06-23 09:22:21 +03:00
|
|
|
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
|