diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3feeb1df..6e2371dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,10 +1,34 @@ name: "release" + on: push: tags: - "v*" +permissions: write-all + jobs: + check-version: + runs-on: ubuntu-latest + steps: + - name: Clone Repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract version from tag + run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV + + - name: Use Node.js 20.X + uses: actions/setup-node@v4 + with: + node-version: 20.x + + - name: Check Version + run: | + ls + node ./script/checkVersion.cjs + sh ./checkVersion.sh build-linux: runs-on: ubuntu-latest strategy: @@ -22,7 +46,8 @@ jobs: - name: Use Node.js 20.X uses: actions/setup-node@v4 with: - node-version: 20.x + node-version: 20.x + - name: Build NuCat Linux run: | npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} @@ -49,10 +74,12 @@ jobs: repository: 'NapNeko/NapCatQQ' submodules: true token: ${{ secrets.NAPCAT_BUILD }} + - name: Use Node.js 20.X uses: actions/setup-node@v4 with: node-version: 20.x + - name: Build NuCat Linux run: | npm i --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} @@ -60,11 +87,13 @@ jobs: cd dist npm i --omit=dev --arch=${{ matrix.target_arch }} --platform=${{ matrix.target_platform }} cd .. + - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: NapCat.${{ matrix.target_platform }}.${{ matrix.target_arch }} path: dist + release-napcat: needs: [build-win32,build-linux] runs-on: ubuntu-latest @@ -78,6 +107,7 @@ jobs: base=$(basename "$dir") zip -r "${base}.zip" "$dir" done + - name: Create Release Draft and Upload Artifacts uses: softprops/action-gh-release@v1 with: diff --git a/.gitignore b/.gitignore index 615fd51d..a23658d9 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ src/core.lib/common/ # Build *.db +checkVersion.sh \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..8a2e9ba7 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2024 NapCatQQ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/script/checkVersion.cjs b/script/checkVersion.cjs new file mode 100644 index 00000000..5cd8911b --- /dev/null +++ b/script/checkVersion.cjs @@ -0,0 +1,16 @@ +let fs = require("fs"); +let process = require("process") +console.log("[NapCat] [CheckVersion] 开始检测当前仓库版本..."); +let currentVersion = require("../package.json").version; +let targetVersion = process.env.VERSION; +console.log("[NapCat] [CheckVersion] currentVersion:", currentVersion, " targetVersion:", targetVersion); +// 借用dist目录输出脚本 +fs.mkdirSync("./dist"); +if (currentVersion === targetVersion) { + fs.appendFileSync("../checkVersion.sh", "#!/bin/bashe\necho \"CheckVersion Is Done\"") +} else { + let packageJson = JSON.parse(fs.readFileSync("./package.json")); + packageJson.version = targetVersion; + fs.writeFileSync("../package.json", JSON.stringify(packageJson)); + fs.appendFileSync("../checkVersion.sh", "#!/bin/bashe\ngit add .\n git commit -m \"chore:version change\"\n git push") +} diff --git a/src/onebot11/index.ts b/src/onebot11/index.ts index 36b8b847..adb48ade 100644 --- a/src/onebot11/index.ts +++ b/src/onebot11/index.ts @@ -21,15 +21,16 @@ checkVersion().then((remoteVersion: string) => { const localVersion = require('./package.json').version; const localVersionList = localVersion.split('.'); const remoteVersionList = remoteVersion.split('.'); + console.log('[NapCat] [Upate] 当前版本:', localVersion); for (const k of [0, 1, 2]) { if (parseInt(remoteVersionList[k]) > parseInt(localVersionList[k])) { - console.log('检测到更新,请前往 https://github.com/NapNeko/NapCatQQ 下载 NapCatQQ V', remoteVersion); + console.log('[NapCat] [Upate] 检测到更新,请前往 https://github.com/NapNeko/NapCatQQ 下载 NapCatQQ V', remoteVersion); return; } else if (parseInt(remoteVersionList[k]) < parseInt(localVersionList[k])) { break; } } - console.log('当前已是最新版本,版本:', localVersion); + console.log('[NapCat] [Upate] 当前已是最新版本'); return; }); new NapCatOnebot11();