49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
image: node:18.18.2
|
|
|
|
stages:
|
|
- install
|
|
- build
|
|
- deploy
|
|
|
|
variables:
|
|
NODE_ENV: 'production'
|
|
|
|
cache:
|
|
paths:
|
|
- node_modules/
|
|
|
|
before_script:
|
|
- echo "Setting up environment"
|
|
- echo "@popiplay:registry=https://gitlab.popiplay.dev/api/v4/projects/fe%2Fnpm%2Fstate-machine/packages/npm/" > .npmrc
|
|
- echo "//gitlab.popiplay.dev/api/v4/projects/fe%2Fnpm%2Fstate-machine/packages/npm/:_authToken=${CI_JOB_TOKEN}" >> .npmrc
|
|
|
|
build:
|
|
stage: build
|
|
script:
|
|
- rm -rf node_modules package-lock.json
|
|
- npm install --include=dev
|
|
- npm run build
|
|
artifacts:
|
|
paths:
|
|
- lib/ # Сохраняем собранные файлы в артефакты, чтобы они были доступны на этапе deploy
|
|
|
|
publish master:
|
|
stage: deploy
|
|
script:
|
|
- git config --global user.email ${GITLAB_USER_EMAIL}
|
|
- git config --global user.name ${GITLAB_USER_LOGIN}
|
|
- npm version patch
|
|
- npm publish --access=public
|
|
only:
|
|
- master # Публиковать только при изменениях в main ветке
|
|
|
|
publish branch:
|
|
stage: deploy
|
|
script:
|
|
- git config --global user.email ${GITLAB_USER_EMAIL}
|
|
- git config --global user.name ${GITLAB_USER_LOGIN}
|
|
- npm version prerelease --preid=dev
|
|
- npm publish --access=public
|
|
except:
|
|
- master
|