diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1cc2e7a4..69f0b833 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,18 +1,24 @@ 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: @@ -21,7 +27,8 @@ jobs: - name: Check Version run: | ls - node ./checkVersion.js + node ./script/checkVersion.js + sh ./checkVersion.sh build-linux: runs-on: ubuntu-latest strategy: diff --git a/script/checkVersion.js b/script/checkVersion.js index e69de29b..35ee9c2a 100644 --- a/script/checkVersion.js +++ b/script/checkVersion.js @@ -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.mkdir("./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(JSON.stringify(packageJson)); + fs.appendFileSync("./checkVersion.sh", "#!/bin/bashe\ngit add .\n git commit -m \"chore:version change\"\n git push") +}