Files
xo-stack/.gitlab-ci.yml
T

55 lines
1.6 KiB
YAML

image: node:22
stages:
- publish
cache:
# The cache is shared for same values of cache key
# Here, we use CI_PIPELINE_ID which is defined as:
# "The instance-level ID of the current pipeline. This ID is unique across all projects on the GitLab instance."
# This should ensure that we only cache the "node_modules" folder for this given pipeline instance.
# Refer to this docs to know more about the predefined variables used in the key here: https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
key: $CI_PIPELINE_ID
# configure the path to be cached
paths:
- node_modules/
before_script:
- npm install
- npm run build
.publish_to_npm:
# Configure which stage in the pipeline this part should be run in.
stage: publish
script:
- npm config set //registry.npmjs.org/:_authToken ${NPM_AUTH_TOKEN}
- npx lerna publish from-package --no-private --yes --registry https://registry.npmjs.org/ --tag ${NPM_TAG}
publish:development:
# Configure what tag to use for this publication.
variables:
NPM_TAG: 'development'
script:
# add the NPM_TAG to the version field in the package file during this script
- sed -i -r "/version/s/([0-9\.]+)/\1-${NPM_TAG}.${CI_JOB_ID}/g" packages/primitives/package.json
only:
- development
# Use the common template to publish the library.
extends: .publish_to_npm
# Publish the documentation to GitLab Pages (for now).
pages:
stage: publish
script:
- npm run docs:build
- mv packages/docs/dist public
artifacts:
paths:
- public
only:
- development