stages: - site-publish - npm-publish # build a new version of the demo site pages: stage: site-publish script: - mkdir .public - cp -r * .public - mv .public public artifacts: paths: - public only: - main # publish to npm registry, when creating a new tag # should be equivalent to package.json.version, # and prefixed by `v`; ex: v0.0.1 # (only work when tagging from gitlab ui) publish: stage: npm-publish image: node:latest rules: - if: '$CI_COMMIT_TAG =~ /^v[0-9]+\.[0-9]+\.[0-9]+$/' script: - npm set //registry.npmjs.org/:_authToken ${NPM_TOKEN} - npm publish --access public --verbose