From 3b5c47af84e2f8a06f2e8924bc4f7af5159a5077 Mon Sep 17 00:00:00 2001 From: Jason Woltje Date: Sat, 14 Feb 2026 22:57:21 -0600 Subject: [PATCH] feat(#1): split publish into release and dev channels - publish-release (main): publishes package.json version as-is with 'latest' dist-tag, skips if version already published - publish-dev (develop): publishes {version}-dev.{timestamp} with 'dev' dist-tag, every push gets a unique prerelease version Install channels: npm install @mosaicstack/telemetry-client # latest stable npm install @mosaicstack/telemetry-client@dev # latest dev build Co-Authored-By: Claude Opus 4.6 --- .woodpecker.yml | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/.woodpecker.yml b/.woodpecker.yml index d458a3c..063da2f 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -57,7 +57,7 @@ steps: - security-audit - test - publish: + publish-release: image: *node_image environment: GITEA_TOKEN: @@ -68,8 +68,8 @@ steps: echo "//git.mosaicstack.dev/api/packages/mosaic/npm/:_authToken=$$GITEA_TOKEN" > .npmrc echo "@mosaicstack:registry=https://git.mosaicstack.dev/api/packages/mosaic/npm/" >> .npmrc - | - CURRENT=$(node -p "require('./package.json').version") - PUBLISHED=$(npm view @mosaicstack/telemetry-client version 2>/dev/null || echo "0.0.0") + CURRENT=$$(node -p "require('./package.json').version") + PUBLISHED=$$(npm view @mosaicstack/telemetry-client version 2>/dev/null || echo "0.0.0") if [ "$$CURRENT" = "$$PUBLISHED" ]; then echo "Version $$CURRENT already published, skipping" exit 0 @@ -77,11 +77,35 @@ steps: echo "Publishing $$CURRENT (was $$PUBLISHED)" npm publish --access public when: - - branch: [main, develop] + - branch: main event: [push, manual, tag] depends_on: - build + publish-dev: + image: *node_image + environment: + GITEA_TOKEN: + from_secret: gitea_token + CI_COMMIT_SHA: ${CI_COMMIT_SHA} + commands: + - npm run build + - | + echo "//git.mosaicstack.dev/api/packages/mosaic/npm/:_authToken=$$GITEA_TOKEN" > .npmrc + echo "@mosaicstack:registry=https://git.mosaicstack.dev/api/packages/mosaic/npm/" >> .npmrc + - | + BASE=$$(node -p "require('./package.json').version") + TIMESTAMP=$$(date -u +%Y%m%d%H%M%S) + DEV_VERSION="$${BASE}-dev.$${TIMESTAMP}" + echo "Publishing dev version $$DEV_VERSION" + node -e "const p=require('./package.json'); p.version='$$DEV_VERSION'; require('fs').writeFileSync('package.json', JSON.stringify(p, null, 2)+'\n')" + npm publish --access public --tag dev + when: + - branch: develop + event: [push, manual] + depends_on: + - build + link-package: image: alpine:3 environment: @@ -115,4 +139,5 @@ steps: - branch: [main, develop] event: [push, manual, tag] depends_on: - - publish + - publish-release + - publish-dev