1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix dist tags being wrong (#7028)

* Add reusable CLI for parsing semver

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Use CLI to specify dist-tag

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Remove dead scripts

Signed-off-by: Sebastian Malton <sebastian@malton.name>

* Add git ignore

Signed-off-by: Sebastian Malton <sebastian@malton.name>

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-01-26 08:54:14 -08:00 committed by GitHub
parent 57bd19f51b
commit 70872459b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 1369 additions and 15 deletions

View File

@ -38,6 +38,12 @@ jobs:
- name: Publish NPM packages - name: Publish NPM packages
run: | run: |
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
yarn lerna publish from-package --no-push --no-git-tag-version --yes DIST_TAG=$(cat lerna.json | jq '.version' --raw-output | xargs node ./packages/semver/dist/index.mjs --prerelease 0)
yarn lerna \
publish from-package \
--no-push \
--no-git-tag-version \
--yes \
--dist-tag ${DIST_TAG:-latest}
env: env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

2
packages/semver/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
dist/
node_modules/

View File

@ -0,0 +1,21 @@
{
"name": "@k8slens/semver",
"version": "6.4.0-beta.5",
"description": "CLI over semver package for picking parts of a version",
"main": "dist/index.mjs",
"license": "MIT",
"private": true,
"scripts": {
"clean": "rm -rf dist/",
"build": "swc ./src/index.ts -o ./dist/index.mjs"
},
"devDependencies": {
"@swc/cli": "^0.1.59",
"@swc/core": "^1.3.28",
"@types/command-line-args": "^5.2.0",
"@types/node": "^16.18.11",
"@types/semver": "^7.3.13",
"command-line-args": "^5.2.1",
"semver": "^7.3.8"
}
}

View File

@ -0,0 +1,91 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { SemVer } from "semver";
import commandLineArgs from "command-line-args";
const options = commandLineArgs([
{
name: "version",
defaultOption: true,
},
{
name: "major",
type: Boolean,
},
{
name: "minor",
type: Boolean,
},
{
name: "patch",
type: Boolean,
},
{
name: "prerelease",
type: (input) => {
if (!input || input === "true") {
return true;
}
const asNumber = Number(input);
if (Number.isInteger(asNumber) && asNumber >= 0) {
return asNumber;
}
throw new Error("Invalid --prerelease value, must be either true (default), or a non-negative integrer");
},
},
{
name: "json",
type: Boolean,
},
]);
if (!options.version || typeof options.version !== "string") {
console.error("Missing version");
process.exit(1);
}
const showMajor = Boolean(options.major);
const showMinor = Boolean(options.minor);
const showPatch = Boolean(options.patch);
const showPrerelease = options.prerelease !== undefined;
const showJson = Boolean(options.json);
const showOptionsSet = [+showMajor, +showMinor, +showPatch, +showPrerelease, +showJson].reduce((prev, cur) => prev + cur, 0);
if (showOptionsSet === 0) {
console.error("One of the following must be provided: --major, --minor, --patch, --prerelease, --json");
process.exit(1);
}
if (showOptionsSet > 1) {
console.error("Only one of the following may be provided: --major, --minor, --patch, --prerelease, --json");
process.exit(1);
}
const version = new SemVer(options.version);
if (showMajor) {
console.log(version.major.toString());
} else if (showMinor) {
console.log(version.major.toString());
} else if (showPatch) {
console.log(version.patch.toString());
} else if (showPrerelease) {
if ((options.prerelease ?? true) === true) {
console.log(JSON.stringify(version.prerelease))
} else if (version.prerelease.length > options.prerelease) {
console.log(version.prerelease[options.prerelease].toString());
}
} else if (showJson) {
console.log(JSON.stringify({
major: version.major,
minor: version.minor,
patch: version.patch,
prerelease: version.prerelease,
}));
}

View File

@ -0,0 +1,19 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"composite": true,
"outDir": "dist/",
"paths": {
"*": [
"node_modules/*",
"types/*"
]
},
},
"include": [
"src/**/*",
],
"exclude": [
"node_modules",
]
}

1229
packages/semver/yarn.lock Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
#!/bin/bash
./node_modules/.bin/npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
NPM_RELEASE_TAG=$(cat package.json | jq .version --raw-output | rg '.*-(?P<channel>\w+).*' -r '$channel' | cat)
cd packages/extensions && npm publish --access=public --tag=${NPM_RELEASE_TAG:-latest} && git restore package.json

View File

@ -1,7 +0,0 @@
#!/bin/bash
./node_modules/.bin/npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
NPM_RELEASE_TAG=$(cat package.json | jq .version --raw-output | rg '.*-(?P<channel>\w+).*' -r '$channel' | cat)
npm publish --access=public --tag=${NPM_RELEASE_TAG:-latest}