From d4d24b71f77adbca006ea14213b2e053bd4d44ff Mon Sep 17 00:00:00 2001
From: Michael Kriese <michael.kriese@visualon.de>
Date: Wed, 21 Apr 2021 19:35:20 +0200
Subject: [PATCH] build: prepare maintenance releases (#9671)

---
 .github/workflows/build.yml       |  1 +
 .github/workflows/release-npm.yml |  2 +-
 .releaserc                        | 14 ++++++++++++--
 tools/dispatch-release.mjs        |  8 +++++---
 tools/release.mjs                 |  4 ++--
 tools/utils.mjs                   |  5 ++++-
 6 files changed, 25 insertions(+), 9 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index c7825e1b97..144292f75b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -4,6 +4,7 @@ on:
   push:
     branches:
       - master
+      - v24
 
   workflow_dispatch:
 
diff --git a/.github/workflows/release-npm.yml b/.github/workflows/release-npm.yml
index fac7bcb140..a26410c73b 100644
--- a/.github/workflows/release-npm.yml
+++ b/.github/workflows/release-npm.yml
@@ -51,6 +51,6 @@ jobs:
       - name: Publish ${{ github.event.client_payload.version }}
         run: |
           echo '//registry.npmjs.org/:_authToken=${NPM_TOKEN}' >> ~/.npmrc
-          npm publish
+          npm publish --tag ${{ github.event.client_payload.tag }}
         env:
           NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
diff --git a/.releaserc b/.releaserc
index 625c7479a8..e6ca1a4e3d 100644
--- a/.releaserc
+++ b/.releaserc
@@ -12,7 +12,7 @@
       "@semantic-release/exec",
       {
         "verifyConditionsCmd": "run-s verify",
-        "publishCmd": "run-s \"release -- {@}\" -- --release=${nextRelease.version} --sha=${nextRelease.gitHead}"
+        "publishCmd": "run-s \"release -- {@}\" -- --release=${nextRelease.version} --sha=${nextRelease.gitHead} --tag=${nextRelease.channel}"
       }
     ]
   ],
@@ -82,5 +82,15 @@
       }
     ]
   },
-  "tagFormat": "${version}"
+  "tagFormat": "${version}",
+  "branches": [
+    {
+      "name": "v24",
+      "range": "24.x",
+      "channel": "v24"
+    },
+    {
+      "name": "master"
+    }
+  ]
 }
diff --git a/tools/dispatch-release.mjs b/tools/dispatch-release.mjs
index b1beb8a536..927d6e52b1 100644
--- a/tools/dispatch-release.mjs
+++ b/tools/dispatch-release.mjs
@@ -1,9 +1,10 @@
 import got from 'got';
 import shell from 'shelljs';
-import { program } from './utils.mjs';
+import { options } from './utils.mjs';
 
-const version = program.release;
-const dry = program.dryRun;
+const version = options.release;
+const tag = options.tag;
+const dry = options.dryRun;
 
 shell.echo(`Dispatching version: ${version}`);
 
@@ -27,6 +28,7 @@ shell.echo(`Dispatching version: ${version}`);
           sha: process.env.GITHUB_SHA,
           ref: process.env.GITHUB_REF,
           version,
+          tag,
         },
       },
     }
diff --git a/tools/release.mjs b/tools/release.mjs
index a475489216..eb1d20f3ea 100644
--- a/tools/release.mjs
+++ b/tools/release.mjs
@@ -1,7 +1,7 @@
 import shell from 'shelljs';
-import { program } from './utils.mjs';
+import { options } from './utils.mjs';
 
-const version = program.release;
+const version = options.release;
 // const sha = program.sha;
 
 // let err = false;
diff --git a/tools/utils.mjs b/tools/utils.mjs
index 49f1e215ff..6840a0236d 100644
--- a/tools/utils.mjs
+++ b/tools/utils.mjs
@@ -5,11 +5,14 @@ const program = new commander.Command();
 program
   .version('0.0.1')
   .requiredOption('-r, --release <type>', 'Version to use')
-  .option('-s, --sha <type>', 'Sha to use')
+  .option('-s, --sha <type>', 'Git sha to use')
+  .option('-t, --tag <type>', 'Npm dist-tag to publish to', 'latest')
   .option('-d, --dry-run');
 
 program.parse(process.argv);
 
+export const options = program.opts();
+
 export { program };
 
 /**
-- 
GitLab