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