const version = '${version}'; const isRelease = process.argv.includes('--release'); const preRelease = process.argv.find(arg => arg.startsWith('--preRelease=')); const preReleaseName = preRelease ? (preRelease.split('=')[1]) : ''; // const tagMatchOpts = isRelease ? {} : { tagMatch: `v[0-9]*.[0-9]*.[0-9]*-${preReleaseName}.[0-9]*` }; const tagMatchOpts = isRelease ? { tagExclude: `*[-]*` } : {}; console.log(`Release(${isRelease ? true : preReleaseName}): `, process.argv.join(' ')); console.log(`TagMatch: ${tagMatchOpts}`); module.exports = { plugins: { '@release-it/conventional-changelog': { infile: `CHANGELOG${isRelease ? '' : '-' + preReleaseName.toUpperCase()}.md`, preset: { name: "conventionalcommits", types: [ { type: "feat", section: "新特性", }, { type: "fix", section: "修复BUG", }, { type: "perf", section: "性能优化", }, { type: "revert", section: "回滚", }, { type: "docs", section: "文档", }, { type: "style", section: "代码格式", }, { type: "refactor", section: "重构", }, { type: "test", section: "测试", }, { type: "build", section: "构建", }, { type: "ci", section: "CI", }, { type: "chore", section: "其他", }, ], }, }, 'release-it-gitea': { releaseTitle: "🎉 v${version}", releaseNotes: (t) => { const lines = t.changelog.split('\n'); const cateLines = lines.filter(line => line.startsWith('###') || line.startsWith('* ')); const cateMap = {}; let currentCate = ''; cateLines.forEach(line => { if (line.startsWith('###')) { currentCate = line; cateMap[currentCate] = cateMap[currentCate] || []; } else { cateMap[currentCate].push(line); } }); return Object.entries(cateMap).map(([cate, lines]) => { return `${cate}\n\n${lines.map(line => `${line}`).join('\n')}\n`; }).join('\n'); }, assets: [ { "path": "dist/**/*.map", "name": "sourcemap.zip", "type": "zip" } ] } }, git: { push: true, tagName: `v${version}`, commitsPath: '.', commitMessage: `chore: released version v${version} [no ci]`, requireCommits: false, requireCommitsFail: false, getLatestTagFromAllRefs: true, requireBranch: ['main', 'dev'], ...tagMatchOpts, }, npm: { publish: false, ignoreVersion: true, tag: preReleaseName ? preReleaseName : 'latest', versionArgs: ['--workspaces false'], }, github: { release: false, releaseName: `Release v${version}`, autoGenerate: true, skipChecks: true, host: 'git.bjxgj.com' }, hooks: { 'before:release': [ `echo 'v\${version}' > /tmp/last-version`, 'git add --all', 'npm run build' ], } };