chore: cleanup build script

This commit is contained in:
Tunglies
2026-09-03 11:28:00 +08:00
parent dab1647125
commit ff4b4dd822
7 changed files with 0 additions and 296 deletions
-5
View File
@@ -496,11 +496,6 @@ jobs:
token: ${{ secrets.GITHUB_TOKEN }}
files: target/${{ matrix.target }}/release/bundle/nsis/*setup*
- name: Portable Bundle
run: pnpm portable-fixed-webview2 ${{ matrix.target }} --${{ env.TAG_NAME }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
notify-telegram:
name: Notify Telegram
runs-on: ubuntu-latest
-5
View File
@@ -532,11 +532,6 @@ jobs:
gh release upload "${{ github.ref_name }}" $files --clobber
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
- name: Portable Bundle
run: pnpm portable-fixed-webview2 ${{ matrix.target }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
release-update:
if: ${{ !contains(github.ref_name, '-rc') }}
name: Release Update
-4
View File
@@ -19,13 +19,9 @@
"prebuild": "node scripts/prebuild.mjs",
"updater": "node scripts/updater.mjs",
"updater-fixed-webview2": "node scripts/updater-fixed-webview2.mjs",
"portable": "node scripts/portable.mjs",
"portable-fixed-webview2": "node scripts/portable-fixed-webview2.mjs",
"fix-alpha-version": "node scripts/fix-alpha_version.mjs",
"release-version": "node scripts/release-version.mjs",
"release:autobuild": "pnpm release-version autobuild",
"release:deploytest": "pnpm release-version deploytest",
"publish-version": "node scripts/publish-version.mjs",
"eslint": "pnpm lint",
"lint": "eslint -c eslint.config.ts --max-warnings=0 --cache --cache-location .eslintcache src",
"lint:fix": "eslint -c eslint.config.ts --max-warnings=0 --cache --cache-location .eslintcache --fix src",
-46
View File
@@ -1,46 +0,0 @@
import { exec } from 'child_process'
import fs from 'fs/promises'
import path from 'path'
import { promisify } from 'util'
const execPromise = promisify(exec)
async function getLatestCommitHash() {
try {
const { stdout } = await execPromise('git rev-parse HEAD')
const commitHash = stdout.trim()
const formathash = commitHash.substring(0, 7)
console.log(`Found the latest commit hash code: ${commitHash}`)
return formathash
} catch (error) {
console.error('pnpm run fix-alpha-version ERROR', error)
}
}
async function updatePackageVersion(newVersion) {
const _dirname = process.cwd()
const packageJsonPath = path.join(_dirname, 'package.json')
try {
const data = await fs.readFile(packageJsonPath, 'utf8')
const packageJson = JSON.parse(data)
let result = packageJson.version.replace('alpha', newVersion)
if (!packageJson.version.includes(`alpha-`)) {
result = packageJson.version.replace('alpha', `alpha-${newVersion}`)
} else {
result = packageJson.version.replace(/alpha-[^-]*/, `alpha-${newVersion}`)
}
console.log('[INFO]: Current version is: ', result)
packageJson.version = result
await fs.writeFile(
packageJsonPath,
JSON.stringify(packageJson, null, 2),
'utf8',
)
console.log(`[INFO]: Alpha version update to: ${newVersion}`)
} catch (error) {
console.error('pnpm run fix-alpha-version ERROR', error)
}
}
const newVersion = await getLatestCommitHash()
updatePackageVersion(newVersion).catch(console.error)
-104
View File
@@ -1,104 +0,0 @@
import fs from 'fs'
import fsp from 'fs/promises'
import { createRequire } from 'module'
import path from 'path'
import { context, getOctokit } from '@actions/github'
import AdmZip from 'adm-zip'
const target = process.argv.slice(2)[0]
const alpha = process.argv.slice(2)[1]
const ARCH_MAP = {
'x86_64-pc-windows-msvc': 'x64',
'i686-pc-windows-msvc': 'x86',
'aarch64-pc-windows-msvc': 'arm64',
}
const PROCESS_MAP = {
x64: 'x64',
ia32: 'x86',
arm64: 'arm64',
}
const arch = target ? ARCH_MAP[target] : PROCESS_MAP[process.arch]
/// Script for ci
/// 打包绿色版/便携版 (only Windows)
async function resolvePortable() {
if (process.platform !== 'win32') return
const releaseDir = target
? `./src-tauri/target/${target}/release`
: `./src-tauri/target/release`
const configDir = path.join(releaseDir, '.config')
if (!fs.existsSync(releaseDir)) {
throw new Error('could not found the release dir')
}
await fsp.mkdir(configDir, { recursive: true })
if (!fs.existsSync(path.join(configDir, 'PORTABLE'))) {
await fsp.writeFile(path.join(configDir, 'PORTABLE'), '')
}
const zip = new AdmZip()
zip.addLocalFile(path.join(releaseDir, 'Clash Verge.exe'))
zip.addLocalFile(path.join(releaseDir, 'verge-mihomo.exe'))
zip.addLocalFile(path.join(releaseDir, 'verge-mihomo-alpha.exe'))
zip.addLocalFolder(path.join(releaseDir, 'resources'), 'resources')
zip.addLocalFolder(
path.join(
releaseDir,
`Microsoft.WebView2.FixedVersionRuntime.133.0.3065.92.${arch}`,
),
`Microsoft.WebView2.FixedVersionRuntime.133.0.3065.92.${arch}`,
)
zip.addLocalFolder(configDir, '.config')
const require = createRequire(import.meta.url)
const packageJson = require('../package.json')
const { version } = packageJson
const zipFile = `Clash.Verge_${version}_${arch}_fixed_webview2_portable.zip`
zip.writeZip(zipFile)
console.log('[INFO]: create portable zip successfully')
// push release assets
if (process.env.GITHUB_TOKEN === undefined) {
throw new Error('GITHUB_TOKEN is required')
}
const options = { owner: context.repo.owner, repo: context.repo.repo }
const github = getOctokit(process.env.GITHUB_TOKEN)
const tag = alpha ? 'alpha' : process.env.TAG_NAME || `v${version}`
console.log('[INFO]: upload to ', tag)
const { data: release } = await github.rest.repos.getReleaseByTag({
...options,
tag,
})
const assets = release.assets.filter((x) => {
return x.name === zipFile
})
if (assets.length > 0) {
const id = assets[0].id
await github.rest.repos.deleteReleaseAsset({
...options,
asset_id: id,
})
}
console.log(release.name)
await github.rest.repos.uploadReleaseAsset({
...options,
release_id: release.id,
name: zipFile,
data: zip.toBuffer(),
})
}
resolvePortable().catch(console.error)
-53
View File
@@ -1,53 +0,0 @@
import fs from 'fs'
import fsp from 'fs/promises'
import { createRequire } from 'module'
import path from 'path'
import AdmZip from 'adm-zip'
const target = process.argv.slice(2)[0]
const ARCH_MAP = {
'x86_64-pc-windows-msvc': 'x64',
'aarch64-pc-windows-msvc': 'arm64',
}
const PROCESS_MAP = {
x64: 'x64',
arm64: 'arm64',
}
const arch = target ? ARCH_MAP[target] : PROCESS_MAP[process.arch]
/// Script for ci
/// 打包绿色版/便携版 (only Windows)
async function resolvePortable() {
if (process.platform !== 'win32') return
const releaseDir = target
? `./src-tauri/target/${target}/release`
: `./src-tauri/target/release`
const configDir = path.join(releaseDir, '.config')
if (!fs.existsSync(releaseDir)) {
throw new Error('could not found the release dir')
}
await fsp.mkdir(configDir, { recursive: true })
if (!fs.existsSync(path.join(configDir, 'PORTABLE'))) {
await fsp.writeFile(path.join(configDir, 'PORTABLE'), '')
}
const zip = new AdmZip()
zip.addLocalFile(path.join(releaseDir, 'clash-verge.exe'))
zip.addLocalFile(path.join(releaseDir, 'verge-mihomo.exe'))
zip.addLocalFile(path.join(releaseDir, 'verge-mihomo-alpha.exe'))
zip.addLocalFolder(path.join(releaseDir, 'resources'), 'resources')
zip.addLocalFolder(configDir, '.config')
const require = createRequire(import.meta.url)
const packageJson = require('../package.json')
const { version } = packageJson
const zipFile = `Clash.Verge_${version}_${arch}_portable.zip`
zip.writeZip(zipFile)
console.log('[INFO]: create portable zip successfully')
}
resolvePortable().catch(console.error)
-79
View File
@@ -1,79 +0,0 @@
import { execFileSync, spawn } from 'child_process'
import { existsSync, readFileSync } from 'fs'
import path from 'path'
const rootDir = process.cwd()
const scriptPath = path.join(rootDir, 'scripts', 'release-version.mjs')
if (!existsSync(scriptPath)) {
console.error('release-version.mjs not found!')
process.exit(1)
}
const versionArg = process.argv[2]
if (!versionArg) {
console.error('Usage: pnpm publish-version <version>')
process.exit(1)
}
const runRelease = () =>
new Promise((resolve, reject) => {
const child = spawn('node', [scriptPath, versionArg], { stdio: 'inherit' })
child.on('exit', (code) => {
if (code === 0) resolve()
else reject(new Error('release-version failed'))
})
})
function isSemver(version) {
return /^v?\d+\.\d+\.\d+(-(alpha|beta|rc)(\.\d+)?)?(\+[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*)?$/i.test(
version,
)
}
function normalizeVersion(version) {
return version.startsWith('v') ? version : `v${version}`
}
function readPackageVersion() {
const pkg = JSON.parse(
readFileSync(path.join(rootDir, 'package.json'), 'utf8'),
)
return pkg.version
}
function validateTag(tag) {
if (!isSemver(tag)) {
console.error(`[ERROR]: Invalid git tag: ${tag}`)
process.exit(1)
}
}
async function run() {
await runRelease()
let tag = null
if (versionArg === 'alpha') {
tag = normalizeVersion(readPackageVersion())
} else if (isSemver(versionArg)) {
// 1.2.3、v1.2.3、1.2.3-beta.1 或 1.2.3+build.1
tag = normalizeVersion(versionArg)
}
if (tag) {
validateTag(tag)
try {
execFileSync('git', ['tag', tag], { stdio: 'inherit' })
execFileSync('git', ['push', 'origin', tag], { stdio: 'inherit' })
console.log(`[INFO]: Git tag ${tag} created and pushed.`)
} catch {
console.error(`[ERROR]: Failed to create or push git tag: ${tag}`)
process.exit(1)
}
} else {
console.log('[INFO]: No git tag created for this version.')
}
}
run()