.npm:
  script:
  - npm config set cache $(pwd)/.npm
  - npm config set registry https://mirrors.huaweicloud.com/repository/npm/
  - npm config set @ohos:registry https://repo.harmonyos.com/npm/
  - npm config set @koalaui:registry https://nexus.cn.bz-openlab.ru:10443/repository/koala-npm/
  - npm config set @azanat:registry https://nexus.cn.bz-openlab.ru:10443/repository/koala-npm/
  - npm config set @idlizer:registry https://nexus.cn.bz-openlab.ru:10443/repository/koala-npm/
  - npm config set @panda:registry https://nexus.cn.bz-openlab.ru:10443/repository/koala-npm/
  - npm config set //nexus.cn.bz-openlab.ru:10443/repository/koala-npm/:_auth $NEXUS_NPM_PASS
  - echo ". external/ui2abc" | xargs -n 1 -- npm i --prefer-offline --no-audit --no-fund -C

.npm-pack:
  stage: pre-deploy
  interruptible: true
  tags:
  - idlize-ci
  - koala-ci
  before_script:
    - !reference [.npm, script]
    - mkdir .packages
    - cd $PACKAGE_DIR
  script:
    - sed -i "s/+devel/-dev.$CI_PIPELINE_IID/" package.json
    - npm pack --pack-destination $CI_PROJECT_DIR/.packages
  artifacts:
    expire_in: 1 week
    paths:
      - .packages/*.tgz

.npm-publish:
  stage: deploy
  interruptible: false
  tags:
  - idlize-ci
  - koala-ci
  rules:
  - if: $CI_PIPELINE_SOURCE == "schedule"
    when: never
  - if: $CI_COMMIT_BRANCH == "master"
    when: on_success
  before_script:
    - !reference [.npm, script]
    - cd $PACKAGE_DIR
  script:
    - sed -i "s/+devel/-dev.$CI_PIPELINE_IID/" package.json
    - mkdir -p $CI_PROJECT_DIR/.packages
    - PACK_NAME=`npm pack --no-workspaces --pack-destination $CI_PROJECT_DIR/.packages | grep -o -E '[^ ]+\.tgz$'`
    - npm publish --no-workspaces --tag next $CI_PROJECT_DIR/.packages/$PACK_NAME
  artifacts:
    expire_in: 1 day
    paths:
      - .packages/*.tgz