chore: publish release to gitee

This commit is contained in:
xiaojunnuo
2026-01-13 23:58:50 +08:00
parent 6660161cec
commit 3ab45c91e1
6 changed files with 86 additions and 23 deletions
+8
View File
@@ -140,3 +140,11 @@ jobs:
pnpm install pnpm install
npm run publish_to_atomgit npm run publish_to_atomgit
working-directory: ./ working-directory: ./
- name: publish_to_gitee
id: publish_to_gitee
run: |
export GITEE_TOKEN=${{ secrets.GITEE_TOKEN }}
pnpm install
npm run publish_to_gitee
working-directory: ./
+4 -1
View File
@@ -10,5 +10,8 @@
"editor.defaultFormatter": "vscode.typescript-language-features" "editor.defaultFormatter": "vscode.typescript-language-features"
}, },
"editor.tabSize": 2, "editor.tabSize": 2,
"explorer.autoReveal": false "explorer.autoReveal": false,
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
}
} }
+1
View File
@@ -39,6 +39,7 @@
"dev": "pnpm run -r --parallel compile ", "dev": "pnpm run -r --parallel compile ",
"release": "time /t >trigger/release.trigger && git add trigger/release.trigger && git commit -m \"build: release\" && git push", "release": "time /t >trigger/release.trigger && git add trigger/release.trigger && git commit -m \"build: release\" && git push",
"publish_to_atomgit": "node --experimental-json-modules ./scripts/publish-atomgit.js", "publish_to_atomgit": "node --experimental-json-modules ./scripts/publish-atomgit.js",
"publish_to_gitee": "node --experimental-json-modules ./scripts/publish-gitee.js",
"get_version": "node --experimental-json-modules ./scripts/version.js" "get_version": "node --experimental-json-modules ./scripts/version.js"
}, },
"license": "AGPL-3.0", "license": "AGPL-3.0",
+30
View File
@@ -0,0 +1,30 @@
import fs from 'fs'
export function getVersionContent() {
// CHANGELOG.md
const changelog = fs.readFileSync('./CHANGELOG.md', 'utf8')
// 解析CHANGELOG.md
let lines = changelog.split('\n')
const versionLineIndex = lines.findIndex(line => line.startsWith('## '))
const versionLine = lines[versionLineIndex]
// ## [1.37.16](https://github.com/certd/certd/compare/v1.37.15...v1.37.16) (2025-12-15)
const versionTitle = versionLine.match(/\[(.*?)\]/)[1]
const contentStart = versionLineIndex + 1
lines = lines.slice(contentStart)
const contentEnd = lines.findIndex(line => {
return line.startsWith('## ')
})
const content = lines.slice(0, contentEnd).join('\n')
console.log("-------title------/n")
console.log(versionTitle)
console.log("-------content------/n")
console.log(content)
return {
versionTitle,
content
}
}
+7 -22
View File
@@ -1,27 +1,11 @@
import fs from 'fs' import fs from 'fs'
import axios from 'axios' import axios from 'axios'
import { getVersionContent } from './get-new-version.js'
const AtomgitAccessToken = process.env.ATOMGIT_TOKEN const AtomgitAccessToken = process.env.ATOMGIT_TOKEN
// CHANGELOG.md
const changelog = fs.readFileSync('./CHANGELOG.md', 'utf8')
// 解析CHANGELOG.md
let lines = changelog.split('\n')
const versionLineIndex = lines.findIndex(line => line.startsWith('## '))
const versionLine = lines[versionLineIndex]
// ## [1.37.16](https://github.com/certd/certd/compare/v1.37.15...v1.37.16) (2025-12-15)
const versionTitle = versionLine.match(/\[(.*?)\]/)[1]
const contentStart = versionLineIndex + 1
lines = lines.slice(contentStart)
const contentEnd = lines.findIndex(line => {
return line.startsWith('## ')
})
const content = lines.slice(0, contentEnd).join('\n')
console.log("-------title------/n")
console.log(versionTitle)
console.log("-------content------/n")
console.log(content)
/** /**
* 创建仓库Release * 创建仓库Release
@@ -68,7 +52,7 @@ string
*/ */
// 创建release // 创建release
async function createRelease() { async function createRelease(versionTitle, content) {
const response = await axios.request({ const response = await axios.request({
method: 'POST', method: 'POST',
url: `https://api.atomgit.com/api/v5/repos/certd/certd/releases`, url: `https://api.atomgit.com/api/v5/repos/certd/certd/releases`,
@@ -138,7 +122,7 @@ headers
object object
*/ */
async function getUploadUrl() { async function getUploadUrl(versionTitle) {
const response = await axios.request({ const response = await axios.request({
method: 'GET', method: 'GET',
url: `https://api.atomgit.com/api/v5/repos/certd/certd/releases/v${versionTitle}/upload_url`, url: `https://api.atomgit.com/api/v5/repos/certd/certd/releases/v${versionTitle}/upload_url`,
@@ -167,8 +151,9 @@ async function uploadFile(url, headers, data) {
} }
async function publishToAtomgit() { async function publishToAtomgit() {
const release = await createRelease() const { versionTitle, content } = getVersionContent()
const uploadUrl = await getUploadUrl() const release = await createRelease(versionTitle, content)
const uploadUrl = await getUploadUrl(versionTitle)
const fileName = `./packages/ui/certd-client/ui.zip` const fileName = `./packages/ui/certd-client/ui.zip`
const fileData = fs.createReadStream(fileName) const fileData = fs.createReadStream(fileName)
const contentLength = fs.statSync(fileName).size const contentLength = fs.statSync(fileName).size
+36
View File
@@ -0,0 +1,36 @@
import axios from 'axios'
import { getVersionContent } from './get-new-version.js'
const GiteeAccessToken = process.env.GITEE_TOKEN
if (!GiteeAccessToken) {
console.log("GiteeAccessToken is empty")
throw new Error("GiteeAccessToken is empty")
}
// 创建release
async function createRelease(versionTitle, content) {
const response = await axios.request({
method: 'POST',
url: `https://gitee.com/api/v5/repos/certd/certd/releases`,
headers: {
"Content-Type": "application/json"
},
data: {
access_token: GiteeAccessToken,
tag_name: `v${versionTitle}`,
name: `v${versionTitle}`,
body: content,
target_commitish: 'v2'
},
})
console.log("createRelease success")
return response.data
}
async function publishToGitee() {
const { versionTitle, content } = getVersionContent()
const release = await createRelease(versionTitle, content)
console.log("publishToGitee success")
}
publishToGitee()