build: 🏗️ 构建与校验

This commit is contained in:
log1997
2025-12-31 09:25:41 +08:00
parent 56bf832cd1
commit 4b8c277374
2 changed files with 13 additions and 23 deletions

View File

@@ -51,16 +51,6 @@ jobs:
with: with:
name: web-build name: web-build
path: dist.zip path: dist.zip
- name: Prepare GitHub Pages artifact
run: |
cp -r dist-prod dist-gh-pages
- name: Upload GitHub Pages artifact
uses: actions/upload-artifact@v4
with:
name: github-pages
path: dist-gh-pages
- name: Prepare GitHub Pages artifact - name: Prepare GitHub Pages artifact
run: | run: |
@@ -167,4 +157,4 @@ jobs:
name: 'Release ${{ github.ref_name }}' name: 'Release ${{ github.ref_name }}'
draft: true draft: true
prerelease: false prerelease: false
generate_release_notes: true generate_release_notes: true

View File

@@ -25,10 +25,10 @@ try {
} else { } else {
console.log('✅ Git tag 版本校验通过'); console.log('✅ Git tag 版本校验通过');
} }
// 获取 tag 指向的提交哈希 // 获取 tag 指向的提交哈希
const tagCommit = execSync(`git rev-list -1 ${tag}`, { encoding: 'utf-8' }).trim(); const tagCommit = execSync(`git rev-list -1 ${tag}`, { encoding: 'utf-8' }).trim();
// 获取当前分支名称 // 获取当前分支名称
let currentBranch; let currentBranch;
try { try {
@@ -37,12 +37,12 @@ try {
console.error('无法获取当前分支名称'); console.error('无法获取当前分支名称');
process.exit(1); process.exit(1);
} }
console.log(`当前分支为: ${currentBranch}`);
// 检查当前分支是否为 release 分支 // 检查当前分支是否为 release 分支
if (currentBranch.startsWith('release/')) { if (currentBranch.startsWith('release')) {
// 如果当前在 release 分支上,检查当前分支的 HEAD 提交是否与 tag 指向的提交一致 // 如果当前在 release 分支上,检查当前分支的 HEAD 提交是否与 tag 指向的提交一致
const currentBranchCommit = execSync(`git rev-parse ${currentBranch}`, { encoding: 'utf-8' }).trim(); const currentBranchCommit = execSync(`git rev-parse ${currentBranch}`, { encoding: 'utf-8' }).trim();
if (tagCommit !== currentBranchCommit) { if (tagCommit !== currentBranchCommit) {
console.log('🏷️ Git tag 指向的提交与当前 release 分支的最新提交不一致'); console.log('🏷️ Git tag 指向的提交与当前 release 分支的最新提交不一致');
console.error(`当前 release 分支 "${currentBranch}" 的最新提交为: ${currentBranchCommit}`); console.error(`当前 release 分支 "${currentBranch}" 的最新提交为: ${currentBranchCommit}`);
@@ -54,27 +54,27 @@ try {
} else { } else {
// 如果当前不在 release 分支上,查找所有 release 分支并检查是否有分支的 HEAD 与 tag 指向的提交一致 // 如果当前不在 release 分支上,查找所有 release 分支并检查是否有分支的 HEAD 与 tag 指向的提交一致
console.log(`🔍 当前在 "${currentBranch}" 分支,检查 tag 指向的提交是否与任何 release 分支的最新提交一致`); console.log(`🔍 当前在 "${currentBranch}" 分支,检查 tag 指向的提交是否与任何 release 分支的最新提交一致`);
// 获取所有本地分支 // 获取所有本地分支
const localBranchesOutput = execSync('git branch --format="%(refname:short)"', { encoding: 'utf-8' }); const localBranchesOutput = execSync('git branch --format="%(refname:short)"', { encoding: 'utf-8' });
const localBranches = localBranchesOutput.split('\n').map(b => b.trim()).filter(b => b); const localBranches = localBranchesOutput.split('\n').map(b => b.trim()).filter(b => b);
// 过滤出 release 分支 // 过滤出 release 分支
const releaseBranches = localBranches.filter(branch => branch.startsWith('release/')); const releaseBranches = localBranches.filter(branch => branch.startsWith('release/'));
if (releaseBranches.length === 0) { if (releaseBranches.length === 0) {
console.log('⚠️ 未找到 release 分支'); console.log('⚠️ 未找到 release 分支');
process.exit(1); process.exit(1);
} }
let foundMatchingBranch = false; let foundMatchingBranch = false;
let matchingBranchName = ''; let matchingBranchName = '';
for (const branch of releaseBranches) { for (const branch of releaseBranches) {
try { try {
// 获取 release 分支的最新提交 // 获取 release 分支的最新提交
const releaseBranchCommit = execSync(`git rev-parse ${branch}`, { encoding: 'utf-8' }).trim(); const releaseBranchCommit = execSync(`git rev-parse ${branch}`, { encoding: 'utf-8' }).trim();
// 检查是否与 tag 指向的提交一致 // 检查是否与 tag 指向的提交一致
if (tagCommit === releaseBranchCommit) { if (tagCommit === releaseBranchCommit) {
foundMatchingBranch = true; foundMatchingBranch = true;
@@ -86,7 +86,7 @@ try {
continue; continue;
} }
} }
if (!foundMatchingBranch) { if (!foundMatchingBranch) {
console.log('🏷️ Git tag 指向的提交与任何 release 分支的最新提交都不一致'); console.log('🏷️ Git tag 指向的提交与任何 release 分支的最新提交都不一致');
console.error(`提供的 tag 为: ${tag}`); console.error(`提供的 tag 为: ${tag}`);