Newer
Older
workflow:
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
when: never
# Don't run on first init commit of a branch
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000"
when: never
- if: $CI_COMMIT_BRANCH
stages:
- build
- deliver
build:
image: node:20
tags:
- docker
- lab
stage: build
script:
- npm install
- npm run build
artifacts:
paths:
- dist
deliver-umd:
image: node:20
tags:
- docker
- lab
stage: deliver
script:
- PACKAGE_VERSION=$(node -e "const c = require('./package.json'); console.log(c.version)")
- echo ${PACKAGE_VERSION}
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --header "Content-Type: text/javascript" --upload-file dist/umd/index.js "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/umd/latest/index.js"'
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --header "Content-Type: text/css" --upload-file dist/umd/assets/styles.css "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/umd/latest/styles.css"'
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --header "Content-Type: text/javascript " --upload-file dist/umd/index.js "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/umd/${PACKAGE_VERSION}/index.js"'
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --header "Content-Type: text/css" --upload-file dist/umd/assets/styles.css "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/umd/${PACKAGE_VERSION}/styles.css"'
needs:
- build
dependencies:
- build
deliver-package:
image: node:20
tags:
- docker
- lab
stage: deliver
script:
- echo "registry=https://${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/" > .npmrc
- echo "//${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}" >> .npmrc
- npm publish
needs:
- build
dependencies:
- build