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

ci: Fix daily alpha workflow to just create the next alpha

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2023-04-24 10:15:38 -04:00
parent f2070a1e4c
commit 54e7f10ca5
7 changed files with 14 additions and 201 deletions

View File

@ -4,11 +4,7 @@ on:
- cron: 0 0 30 * 1-5 # At 12:30am UTC work day - cron: 0 0 30 * 1-5 # At 12:30am UTC work day
workflow_dispatch: # for testing workflow_dispatch: # for testing
jobs: jobs:
tag: create-alpha-release-pr:
outputs:
tagname: v${{ steps.version.outputs.VERSION }}
version: ${{ steps.version.outputs.VERSION }}
continue: ${{ steps.create-branch.outputs.CONTINUE }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
@ -22,81 +18,10 @@ jobs:
- name: Install deps - name: Install deps
run: | run: |
npm install npm install
sudo apt-get install -y ripgrep
env: env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Bump version
id: version
run: |
npm run --workspace @k8slens/bump-version-for-cron build
npm run --workspace @k8slens/bump-version-for-cron bump -- --path packages/core/package.json
- name: Check if branch already exists
id: check-branch
run: git ls-remote --exit-code --tags origin v${{ steps.version.outputs.VERSION }}
continue-on-error: true
- name: Create branch and tag and push
id: create-branch
run: |
# failure means that the tag doesn't exist so we should create it
if [ ${{ steps.check-branch.outcome }} != 'failure' ]; then
echo "CONTINUE=false" >> "$GITHUB_OUTPUT"
exit 0
fi
git config --global user.email "bot@k8slens.dev" - name: Create PR
git config --global user.name "k8slens bot" run: npm run create-release-pr
git checkout -b release/v${{ steps.version.outputs.VERSION }}
git add .
git commit -sm "Release ${{ steps.version.outputs.VERSION }}"
git tag v${{ steps.version.outputs.VERSION }}
git push origin v${{ steps.version.outputs.VERSION }}
echo "CONTINUE=true" >> "$GITHUB_OUTPUT"
create_release:
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
version: ${{ needs.tag.outputs.version }}
needs: [tag]
if: ${{ needs.tag.outputs.continue == 'true' }}
runs-on: ubuntu-20.04
steps:
- name: Create GitHub release
uses: softprops/action-gh-release@v1
id: create_release
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} BUMP_PACKAGE_ARGS: -- --conventional-commits --conventional-prerelease --yes
with:
tag_name: ${{ needs.tag.outputs.tagname }}
name: ${{ needs.tag.outputs.tagname }}
generate_release_notes: true
prerelease: true
release_packages:
needs: [create_release]
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
ref: v${{ needs.create_release.outputs.version }}
- name: Use Node.js 16.x
uses: actions/setup-node@v3
with:
node-version: "16.x"
registry-url: "https://npm.pkg.github.com"
- name: Build package
shell: bash
run: |
npm ci
npm run build
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release to GitHub NPM registry
run: |
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
npx lerna \
publish from-package \
--no-push \
--no-git-tag-version \
--yes \
--dist-tag cron
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

4
package-lock.json generated
View File

@ -3879,10 +3879,6 @@
"resolved": "packages/technical-features/application/electron-main", "resolved": "packages/technical-features/application/electron-main",
"link": true "link": true
}, },
"node_modules/@k8slens/bump-version-for-cron": {
"resolved": "packages/bump-version-for-cron",
"link": true
},
"node_modules/@k8slens/button": { "node_modules/@k8slens/button": {
"resolved": "packages/ui-components/button", "resolved": "packages/ui-components/button",
"link": true "link": true

View File

@ -1,9 +0,0 @@
{
"$schema": "https://json.schemastore.org/swcrc",
"jsc": {
"parser": {
"syntax": "typescript"
},
"target": "es2022"
}
}

View File

@ -1,31 +0,0 @@
{
"name": "@k8slens/bump-version-for-cron",
"version": "6.5.0-alpha.4",
"description": "CLI to bump the version to during a cron daily alpha release",
"license": "MIT",
"scripts": {
"clean": "rimraf dist/",
"build": "swc ./src/index.ts -d ./dist",
"bump": "node ./dist/index.js"
},
"type": "module",
"files": [
"dist"
],
"private": false,
"publishConfig": {
"access": "public",
"registry": "https://registry.npmjs.org/"
},
"dependencies": {
"arg": "^5.0.2",
"semver": "^7.3.8"
},
"devDependencies": {
"@swc/cli": "^0.1.62",
"@swc/core": "^1.3.53",
"@types/node": "^16.18.24",
"@types/semver": "^7.3.13",
"rimraf": "^4.4.1"
}
}

View File

@ -1,56 +0,0 @@
import * as child_process from "child_process";
import { readFile, writeFile } from "fs/promises";
import semver from "semver";
import { promisify } from "util";
import arg from "arg";
const { SemVer } = semver;
const exec = promisify(child_process.exec);
const args = arg({
"--path": String,
});
const versionJsonPath = args["--path"];
if (!versionJsonPath) {
throw new Error("Missing required '--path'");
}
try {
const packageJson = JSON.parse(await readFile(versionJsonPath, "utf-8"));
const { stdout: gitRevParseOutput } = await exec("git rev-parse --short HEAD");
const currentHash = gitRevParseOutput.trim();
const currentVersion = new SemVer(packageJson.version);
const partialVersion = `${currentVersion.major}.${currentVersion.minor}.${currentVersion.patch}`;
const prereleasePart = `cron.${currentHash}`;
const newVersion = `${partialVersion}-${prereleasePart}`;
await writeFile(
versionJsonPath,
JSON.stringify(
{
...packageJson,
version: newVersion,
},
null,
2,
),
);
if (process.env.GITHUB_OUTPUT) {
await writeFile(process.env.GITHUB_OUTPUT, `VERSION=${newVersion}`, {
flag: "a+",
});
}
await exec(`npm run bump-version ${newVersion} -- --yes`);
} catch (error) {
console.error(error);
process.exit(1);
}

View File

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

View File

@ -79,8 +79,9 @@ async function fetchAllGitTags(): Promise<string[]> {
} }
function bumpPackageVersions() { function bumpPackageVersions() {
const bumpPackages = spawn("npm", ["run", "bump-version"], { const bumpPackages = spawn(`npm run bump-version ${process.env.BUMP_PACKAGE_ARGS ?? ""}`, {
stdio: "inherit" stdio: "inherit",
shell: true,
}); });
const cleaners: (() => void)[] = [ const cleaners: (() => void)[] = [
() => bumpPackages.stdout?.unpipe(), () => bumpPackages.stdout?.unpipe(),
@ -153,7 +154,7 @@ async function createReleaseBranchAndCommit(prBase: string, version: SemVer, prB
const prBranch = `release/v${version.format()}`; const prBranch = `release/v${version.format()}`;
await pipeExecFile("git", ["checkout", "-b", prBranch]); await pipeExecFile("git", ["checkout", "-b", prBranch]);
await pipeExecFile("git", ["add", "packages/*/package.json", "package-lock.json"]); await pipeExecFile("git", ["add", "."]);
await pipeExecFile("git", ["commit", "-sm", `Release ${version.format()}`]); await pipeExecFile("git", ["commit", "-sm", `Release ${version.format()}`]);
await pipeExecFile("git", ["push", "--set-upstream", "origin", prBranch]); await pipeExecFile("git", ["push", "--set-upstream", "origin", prBranch]);
@ -354,6 +355,12 @@ async function createRelease(): Promise<void> {
} }
const selectedPrs = await pickRelevantPrs(relevantPrs, isMasterBranch); const selectedPrs = await pickRelevantPrs(relevantPrs, isMasterBranch);
if (selectedPrs.length === 0) {
console.log(`No PRs have been found relating to ${previousReleasedVersion}, stopping...`);
return;
}
const prBody = formatChangelog(previousReleasedVersion, selectedPrs); const prBody = formatChangelog(previousReleasedVersion, selectedPrs);
if (!isMasterBranch) { if (!isMasterBranch) {