# gitzone ci_default image: registry.gitlab.com/hosttoday/ht-docker-node:npmci cache: paths: - .npmci_cache/ key: '$CI_BUILD_STAGE' stages: - security - test - release - metadata before_script: - pnpm install -g @shipzone/npmci pnpm # ==================== # security stage # ==================== mirror: stage: security script: - npmci git mirror only: - tags tags: - lossless - docker - notpriv auditProductionDependencies: image: registry.gitlab.com/hosttoday/ht-docker-node:npmci stage: security script: - npmci npm prepare - npmci command npm install --production --ignore-scripts - npmci command npm config set registry https://registry.npmjs.org - npmci command npm audit --audit-level=high --only=prod --production tags: - docker allow_failure: true auditDevDependencies: image: registry.gitlab.com/hosttoday/ht-docker-node:npmci stage: security script: - npmci npm prepare - npmci command npm install --ignore-scripts - npmci command npm config set registry https://registry.npmjs.org - npmci command npm audit --audit-level=high --only=dev tags: - docker allow_failure: true # ==================== # test stage # ==================== testStable: stage: test script: - npmci npm prepare - npmci node install stable - npmci npm install - npmci npm test coverage: /\d+.?\d+?\%\s*coverage/ tags: - docker testBuild: stage: test script: - npmci npm prepare - npmci node install stable - npmci npm install - npmci command npm run build coverage: /\d+.?\d+?\%\s*coverage/ tags: - docker release: stage: release script: - npmci node install stable - npmci npm publish only: - tags tags: - lossless - docker - notpriv # ==================== # metadata stage # ==================== codequality: stage: metadata allow_failure: true only: - tags script: - npmci command npm install -g tslint typescript - npmci npm prepare - npmci npm install - npmci command "tslint -c tslint.json ./ts/**/*.ts" tags: - lossless - docker - priv trigger: stage: metadata script: - npmci trigger only: - tags tags: - lossless - docker - notpriv pages: stage: metadata script: - npmci node install lts - npmci command npm install -g @gitzone/tsdoc - npmci npm prepare - npmci npm install - npmci command tsdoc tags: - lossless - docker - notpriv only: - tags artifacts: expire_in: 1 week paths: - public allow_failure: true