include: - project: "qa/gitlab-ci-templates" file: "frontend-template.yml" .default: image: node:12-stretch tags: [docker, linux] only: [master, branches] .publish: extends: - .default - .node_modules_cache_pull_template stage: publish stages: - install - build - publish install: extends: - .default - .npm_install_template build: extends: - .default - .node_modules_cache_pull_template artifacts: paths: - lib stage: build script: - npm run build publish:master: only: [master] extends: .publish script: - npm config set "//registry.npmjs.org/:_authToken" "$AUTH_TOKEN" - npm publish publish:beta: only: [branches] except: [master] extends: .publish script: - npm config set "//registry.npmjs.org/:_authToken" "$AUTH_TOKEN" - npm version --newversion "$(node -p "require('./package.json').version")-beta-$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA" --no-git-tag-version - npm publish --tag beta when: manual