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