78 lines
1.8 KiB
YAML
78 lines
1.8 KiB
YAML
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: web-ui-ci
|
|
|
|
trigger:
|
|
branch:
|
|
- main
|
|
- develop
|
|
event:
|
|
- push
|
|
- pull_request
|
|
|
|
steps:
|
|
- name: install
|
|
image: node:25
|
|
commands:
|
|
- yarn install --frozen-lockfile
|
|
|
|
- name: lint
|
|
image: node:25
|
|
commands:
|
|
- yarn lint
|
|
|
|
- name: build
|
|
image: node:25
|
|
commands:
|
|
- yarn build
|
|
|
|
- name: unit-tests
|
|
image: node:25
|
|
environment:
|
|
NODE_OPTIONS: --no-webstorage
|
|
commands:
|
|
- yarn test:coverage
|
|
- test -f coverage/lcov.info
|
|
|
|
- name: code-analysis
|
|
when:
|
|
event:
|
|
- push
|
|
image: sonarsource/sonar-scanner-cli:latest
|
|
commands:
|
|
- |
|
|
test -f coverage/lcov.info
|
|
SONAR_ARGS="-Dsonar.projectKey=$SONAR_PROJECT_KEY -Dsonar.host.url=$SONAR_INSTANCE_URL -Dsonar.token=$SONAR_LOGIN_KEY -Dsonar.sources=src -Dsonar.tests=tests -Dsonar.test.inclusions=tests/**/*.{test,spec}.{ts,tsx,js,jsx} -Dsonar.javascript.lcov.reportPaths=coverage/lcov.info -Dsonar.working.directory=/tmp/.scannerwork"
|
|
sonar-scanner $SONAR_ARGS
|
|
environment:
|
|
SONAR_USER_HOME: /tmp/.sonar
|
|
SONAR_PROJECT_KEY:
|
|
from_secret: sonar_project_key
|
|
SONAR_INSTANCE_URL:
|
|
from_secret: sonar_instance_url
|
|
SONAR_LOGIN_KEY:
|
|
from_secret: sonar_login_key
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: web-ui-publish
|
|
|
|
trigger:
|
|
event:
|
|
- tag
|
|
ref:
|
|
- refs/tags/v*
|
|
|
|
steps:
|
|
- name: publish-npm
|
|
image: node:25
|
|
environment:
|
|
NEXUS_NPM_TOKEN:
|
|
from_secret: nexus_npm_token
|
|
commands:
|
|
- yarn install --frozen-lockfile
|
|
- npm config set //nexus.beatrice.wtf/repository/npm-hosted/:_authToken "$NEXUS_NPM_TOKEN"
|
|
- yarn publish:nexus
|