-
Notifications
You must be signed in to change notification settings - Fork 377
tools: Add releaser for helping manage and automate the release process #3458
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Joaquim Rocha <joaquim.rocha@microsoft.com>
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: joaquimrocha The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces a new releaser tool to help manage and automate the release process for Headlamp. Key changes include adding TypeScript configuration, utility modules for version handling and GitHub interactions, and multiple CLI commands (check, start, tag, publish) to manage various release steps.
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.
Show a summary per file
File | Description |
---|---|
tools/releaser/tsconfig.json | New TypeScript configuration for the releaser tool |
tools/releaser/src/utils/version.ts | Utility for sanitizing version strings with warning messages |
tools/releaser/src/utils/github.ts | Utility functions for GitHub API interactions used in release management |
tools/releaser/src/utils/git.ts | Utility functions for performing Git operations |
tools/releaser/src/index.ts | CLI entry point that wires up command definitions |
tools/releaser/src/commands/tag.ts | Command to create Git tags for releases |
tools/releaser/src/commands/start.ts | Command to update version in package.json and commit changes |
tools/releaser/src/commands/publish.ts | Command to push tags, associate them to release drafts, and publish releases |
tools/releaser/src/commands/check.ts | Command to validate that a release draft exists with all required artifacts |
tools/releaser/package.json | Package manifest detailing dependencies and build scripts |
tools/releaser/.gitignore | Git ignore file (ignoring built files) |
repo: REPO | ||
}); | ||
|
||
const draft = releases.find(release => release.name === version); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Matching the release using the 'name' property may lead to issues if the naming convention does not strictly match the version. Consider using 'tag_name' for comparison or ensure that release names are always set to the version string.
const draft = releases.find(release => release.name === version); | |
const draft = releases.find(release => release.tag_name === version); |
Copilot uses AI. Check for mistakes.
Over the past releases, I have been adding changes to this branch and testing it. Yet with the move to kubernetes-sigs maybe a few things may be broken. Let's still try to get it in and fix them afterwards if it happens.