Загрузка данных


workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"
      when: never

include:
  - project: 'moex-admins/moex-dop/moex-dop-cicd'
    ref: 'itt_template'
    file: '/teams/itt/mr_approval.yml'

  - project: 'moex-admins/moex-dop/moex-dop-cicd'
    ref: 'itt_template'
    file: '/teams/itt/sonar-nodejs.yml'
    rules:
      - if: $CI_PIPELINE_SOURCE == "pipeline"
        when: never
      - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
      - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      - if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^bugfix\/.*$/ && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^release\/.*$/
      - if: $CI_COMMIT_REF_NAME =~ /^release\/.*$/ && $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000"

stages:
  - build
  - sast
  - publish

variables:
  PACKAGE_NAME: moex-chart
  SONARQUBE_PROJECT_KEY: info-trade-terminal_${CI_PROJECT_NAME}
  SONARQUBE_PROJECT_NAME: ${CI_PROJECT_NAME}
  SONARQUBE_COVERAGE_REPORT_USE: 'true'
  TEST_ENABLED: 'true'
  SONARQUBE_ENABLED: 'true'
  SONARSCANNER_IMAGE: moex-docker-static-hosted-nexus-dev.tech.moex.com/sonarsource/sonar-scanner-cli:5.0

build:
  stage: build
  image: moex-docker-static-hosted-nexus-dev.tech.moex.com/node:22.11.0-bookworm-jq
  script:
    - |
      npm config set loglevel verbose
      npm config set ignore-scripts true
      rm package-lock.json

      VERSION=${CI_COMMIT_TAG:-"0.0.0"}
      npm version $VERSION --no-git-tag-version || true

      npm install
      npm run build:lib:js
      npm run build:lib:types
      npm pack
      mkdir -p pack-result
      mv $PACKAGE_NAME-*.tgz pack-result
  artifacts:
    paths:
      - pack-result/
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_PIPELINE_SOURCE == 'merge_request_event' && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

publish:
  stage: publish
  image: moex-docker-static-hosted-nexus-dev.tech.moex.com/node:22.11.0-bookworm-jq
  variables:
    GIT_STRATEGY: none
  dependencies:
    - build
  script:
    - |
      cd pack-result
      TGZ_FILE=$(ls -t ${PACKAGE_NAME}-*.tgz 2>/dev/null | head -n 1)
      curl -v -H "Authorization: Basic ${DOP_NPM_NEXUS_TOKEN}" \
        -X POST \
        "https://nexus-dev.tech.moex.com/service/rest/v1/components?repository=trade-radar-npm-private-hosted" \
        -F "npm.asset=@./${TGZ_FILE};type=application/octet-stream" \
        --fail
  rules:
    - if: $CI_COMMIT_TAG
      when: manual