Skip to content
Snippets Groups Projects

[CI] add release and publish pipeline

Merged Jan Loewe requested to merge jloewe/dcc-js:ci-release-and-publish into master
2 files
+ 3
5
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 54
0
@@ -3,6 +3,8 @@ image: node:18
stages:
- test
- release
- deploy
# === Caches ===
@@ -78,3 +80,55 @@ lint:
- yarn run test:prettier
cache:
- <<: *yarn-cache
# === Job: Prepare Release
# Description: this job prepares an env file for an upcoming release
prepare_release:
stage: .pre
rules:
- if: $CI_COMMIT_TAG =~ /v.*/
script:
- ./scripts/createReleaseEnv.sh >> release.env
artifacts:
paths:
- release.description
reports:
dotenv: release.env
# === Job: Release
# Description: this job creates a new release using the provided env file
# === Variables ===
# NEXT_VER: the version of the upcoming release
# === Files ===
# release.description: multi-line description of the release
release_job:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
needs:
- job: prepare_release
artifacts: true
rules:
- if: $CI_COMMIT_TAG =~ /v.*/
script:
- echo "running release_job for $NEXT_VER"
release:
name: '$NEXT_VER'
description: ./release.description
tag_name: '$NEXT_VER'
ref: '$CI_COMMIT_SHA'
# === Job: Deploy
# Description: this job creates publishes the package to the gitlab package registry
# === Variables ===
# NPM_AUTH_TOKEN: a deploy token with read_package_registry and write_package_registry scopes
deploy:
stage: deploy
needs: ["proxy"]
rules:
- if: $CI_COMMIT_TAG =~ /v.*/
script:
- *yarn-install
- yarn npm publish
Loading