ci: setup semantic release configuration and github actions workflow
This commit is contained in:
1 parent
89f39710c7
commit
d2945a6e8a
4 files changed
+6071
No files matched your search
@@ -0,0 +1,37 @@
|
|||||||
|
name: Release
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
issues: write
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
release:
|
||||||
|
name: Semantic Release
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Required for semantic-release to analyze commits
|
||||||
|
persist-credentials: false # We use a token in the next steps
|
||||||
|
|
||||||
|
- name: Setup Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 22
|
||||||
|
cache: 'npm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: npm ci
|
||||||
|
|
||||||
|
- name: Release
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} # Use GH_TOKEN to trigger other workflows
|
||||||
|
run: npx semantic-release
|
||||||
Generated
+5901
File diff suppressed because it is too large.
Load diff
@@ -38,6 +38,9 @@
|
|||||||
"@eslint/compat": "^1.4.1",
|
"@eslint/compat": "^1.4.1",
|
||||||
"@eslint/js": "^9.39.0",
|
"@eslint/js": "^9.39.0",
|
||||||
"@playwright/test": "^1.56.1",
|
"@playwright/test": "^1.56.1",
|
||||||
|
"@semantic-release/changelog": "^6.0.3",
|
||||||
|
"@semantic-release/git": "^10.0.1",
|
||||||
|
"@semantic-release/github": "^12.0.2",
|
||||||
"@swc/core": "^1.15.8",
|
"@swc/core": "^1.15.8",
|
||||||
"@tanstack/router-plugin": "^1.135.0",
|
"@tanstack/router-plugin": "^1.135.0",
|
||||||
"@testing-library/jest-dom": "^6.9.1",
|
"@testing-library/jest-dom": "^6.9.1",
|
||||||
@@ -53,6 +56,7 @@
|
|||||||
"@vitejs/plugin-react": "^4.7.0",
|
"@vitejs/plugin-react": "^4.7.0",
|
||||||
"babel-plugin-react-compiler": "1.0.0",
|
"babel-plugin-react-compiler": "1.0.0",
|
||||||
"code-inspector-plugin": "^1.3.3",
|
"code-inspector-plugin": "^1.3.3",
|
||||||
|
"conventional-changelog-conventionalcommits": "^9.1.0",
|
||||||
"electron": "^37.3.1",
|
"electron": "^37.3.1",
|
||||||
"electron-devtools-installer": "^4.0.0",
|
"electron-devtools-installer": "^4.0.0",
|
||||||
"electron-playwright-helpers": "^1.8.2",
|
"electron-playwright-helpers": "^1.8.2",
|
||||||
@@ -67,6 +71,8 @@
|
|||||||
"node-addon-api": "^8.3.1",
|
"node-addon-api": "^8.3.1",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.6.2",
|
||||||
"prettier-plugin-tailwindcss": "^0.7.1",
|
"prettier-plugin-tailwindcss": "^0.7.1",
|
||||||
|
"semantic-release": "^25.0.2",
|
||||||
|
"semantic-release-config-gitmoji": "^1.5.3",
|
||||||
"sharp": "^0.34.5",
|
"sharp": "^0.34.5",
|
||||||
"tailwindcss": "^4.1.16",
|
"tailwindcss": "^4.1.16",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
|
|||||||
@@ -0,0 +1,127 @@
|
|||||||
|
/**
|
||||||
|
* Semantic Release Configuration
|
||||||
|
*
|
||||||
|
* This configuration uses the specific release rules requested by the user,
|
||||||
|
* but adapts the plugin configuration to work with standard Conventional Commits
|
||||||
|
* instead of Gitmoji (since the project history doesn't use emojis).
|
||||||
|
*/
|
||||||
|
|
||||||
|
const releaseRules = [
|
||||||
|
{
|
||||||
|
release: 'minor',
|
||||||
|
type: 'feat',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'patch',
|
||||||
|
type: 'fix',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'patch',
|
||||||
|
type: 'perf',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'patch',
|
||||||
|
type: 'style',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'patch',
|
||||||
|
type: 'refactor',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'patch',
|
||||||
|
type: 'build',
|
||||||
|
},
|
||||||
|
{ release: 'patch', scope: 'README', type: 'docs' },
|
||||||
|
{ release: 'patch', scope: 'README.md', type: 'docs' },
|
||||||
|
{ release: false, type: 'docs' },
|
||||||
|
{
|
||||||
|
release: false,
|
||||||
|
type: 'test',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: false,
|
||||||
|
type: 'ci',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: false,
|
||||||
|
type: 'chore',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: false,
|
||||||
|
type: 'wip',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'major',
|
||||||
|
type: 'BREAKING CHANGE',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'major',
|
||||||
|
scope: 'BREAKING CHANGE',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
release: 'major',
|
||||||
|
subject: '*BREAKING CHANGE*',
|
||||||
|
},
|
||||||
|
{ release: 'patch', subject: '*force release*' },
|
||||||
|
{ release: 'patch', subject: '*force patch*' },
|
||||||
|
{ release: 'minor', subject: '*force minor*' },
|
||||||
|
{ release: 'major', subject: '*force major*' },
|
||||||
|
{ release: false, subject: '*skip release*' },
|
||||||
|
];
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
branches: ['main', 'master'],
|
||||||
|
plugins: [
|
||||||
|
[
|
||||||
|
'@semantic-release/commit-analyzer',
|
||||||
|
{
|
||||||
|
preset: 'conventionalcommits',
|
||||||
|
releaseRules: releaseRules,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'@semantic-release/release-notes-generator',
|
||||||
|
{
|
||||||
|
preset: 'conventionalcommits',
|
||||||
|
presetConfig: {
|
||||||
|
types: [
|
||||||
|
{ type: 'feat', section: '✨ Features' },
|
||||||
|
{ type: 'fix', section: '🐛 Bug Fixes' },
|
||||||
|
{ type: 'perf', section: '⚡ Performance Improvements' },
|
||||||
|
{ type: 'revert', section: '⏪ Reverts' },
|
||||||
|
{ type: 'docs', section: '📝 Documentation' },
|
||||||
|
{ type: 'style', section: '💄 Styles' },
|
||||||
|
{ type: 'refactor', section: '♻️ Code Refactoring' },
|
||||||
|
{ type: 'test', section: '✅ Tests' },
|
||||||
|
{ type: 'build', section: '👷 Build System' },
|
||||||
|
{ type: 'ci', section: '🔧 Continuous Integration' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'@semantic-release/changelog',
|
||||||
|
{
|
||||||
|
changelogFile: 'CHANGELOG.md',
|
||||||
|
changelogTitle: '<a name="readme-top"></a>\n\n# Changelog',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
'@semantic-release/npm', // Updates package.json and npm-shrinkwrap.json
|
||||||
|
[
|
||||||
|
'@semantic-release/github',
|
||||||
|
{
|
||||||
|
successComment: false,
|
||||||
|
failComment: false,
|
||||||
|
labels: false,
|
||||||
|
releaseName: 'v${nextRelease.version}',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'@semantic-release/git',
|
||||||
|
{
|
||||||
|
assets: ['CHANGELOG.md', 'package.json', 'package-lock.json', 'npm-shrinkwrap.json'],
|
||||||
|
message: 'chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
};
|
||||||
Reference in new issue
Block a user