Skip to content
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

feat: use release-it for quick deployments #135

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .release-it.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"git": {
"commitMessage": "chore: release v${version}"
},
"github": {
"release": true
},
"hooks": {
"before:init": ["npm run lint"],
"after:my-plugin:bump": [],
"after:bump": "npm run build",
"after:git:release": [],
"after:release": "echo Successfully released ${name} v${version} to ${repo.repository}."
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems smart, I like it! i noticed changelog notes in the screencast too, but don't see any reference to those here - am i understanding it right that the changelog is auto-generated based on any commits to main since last publish - will it just tack those onto our existing CHANGELOG.md?

was originally thinking a publish/release action would be kicked off by any PR merge where we edit package.json version & changelog, but if changelog notes are auto generated here and you can pick the version number during the run, then this fully negates the step of opening that PR altogether, am I understanding that right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also, can someone with write access to the repo, but not npm org/package, run pnpm release successfully from main? not sure i understand how npm permissions are being handled here - an env secret in repo settings??

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah yeah so once this is running from GH actions we could create an auth token in NPM that we can store in github secrets, but right now only people in the opensystemslab org on npm would be authorised to push a new release from their local machines

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • for now you won't need to open a PR for new releases, just run pnpm release from main when it's ready to go and it will auto-bump the package.json version number and move what's in unreleased in the changelog into a new release section. Added some details in a new comment below :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

brilliant, thanks for explaining!

4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@
"dev": "vite",
"build": "rm -rf dist types && tsc && vite build && sed 's/src=\".*\"/src=\"component-lib.es.js\"/' index.html > dist/index.html",
"prepublishOnly": "npm run build",
"prepare": "husky install"
"prepare": "husky install",
"release": "release-it"
},
"dependencies": {
"@turf/union": "^6.5.0",
Expand All @@ -36,6 +37,7 @@
"husky": "^7.0.1",
"lint-staged": "^12.0.3",
"prettier": "^2.3.2",
"release-it": "^14.3.1",
"rollup-plugin-postcss-lit": "^2.0.0",
"sass": "^1.44.0",
"typescript": "^4.3.5",
Expand Down
Loading