cache-apt-pkgs-action/release.config.ts
2026-07-25 16:08:50 -07:00

55 lines
2.1 KiB
TypeScript

/**
* @type {import('semantic-release').GlobalConfig}
*/
export default {
// The 'branches' array defines the release workflow and versioning strategy.
// Order matters: list branches from least stable to most stable.
branches: [
// Development branch is assumed to be from local development and may contain breaking changes.
// Pre-release candidate, feature complete, but may contain known bugs.
//
// 'staging' is for release candidates.
// 'channel: "next"' publishes to the '@next' tag on npm.
// 'prerelease: "rc"' adds the '-rc.x' suffix (e.g., v1.1.0-rc.1).
{ name: "staging", channel: "next", prerelease: "rc" },
// Final and stable release.
//
// No prerelease tag and are published to the 'latest' dist-tag on npm.
"main",
],
// Actions to perform during a release.
plugins: [
// Analyzes commit messages (Conventional Commits) to determine if the next version should be a major,
// minor, or patch bump.
"@semantic-release/commit-analyzer",
// Generates the release notes (changelog content) based on the commit history.
"@semantic-release/release-notes-generator",
// Updates the 'CHANGELOG.md' file with the new release notes.
["@semantic-release/changelog", { changelogFile: "CHANGELOG.md" }],
// Updates 'package.json' with the new version and publishes the package to npm.
// 'npmPublish: true' enables publishing; 'pkgRoot' sets the directory.
["@semantic-release/npm", { npmPublish: true, pkgRoot: "." }],
// Commits the updated 'CHANGELOG.md', 'package.json', and 'package-lock.json' back to the repository with
// a standardized commit message.
[
"@semantic-release/git",
{
assets: ["CHANGELOG.md", "package.json", "package-lock.json"],
message:
"chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}",
},
],
// Creates a GitHub Release with the generated notes and uploads assets.
// Default behavior posts automatic comments on resolved issues/PRs.
"@semantic-release/github",
],
};