Przeglądaj źródła

ci: bump version

Dax Raad 7 miesięcy temu
rodzic
commit
6960408ca2
3 zmienionych plików z 25 dodań i 19 usunięć
  1. 4 5
      .github/workflows/format.yml
  2. 9 8
      .github/workflows/publish.yml
  3. 12 6
      script/publish.ts

+ 4 - 5
.github/workflows/format.yml

@@ -20,10 +20,9 @@ jobs:
         with:
           bun-version: 1.2.21
 
-      - name: Install dependencies
-        run: bun install
-
-      - name: Run format
-        run: ./script/format.ts
+      - name: run
+        run: |
+          bun install
+          ./script/format.ts
         env:
           CI: true

+ 9 - 8
.github/workflows/publish.yml

@@ -4,14 +4,14 @@ run-name: "${{ format('v{0}', inputs.version) }}"
 on:
   workflow_dispatch:
     inputs:
-      version:
-        description: "Version to publish"
+      bump:
+        description: "Bump major, minor, or patch"
         required: true
-        type: string
-      title:
-        description: "Custom title for this run"
-        required: false
-        type: string
+        type: choice
+        options:
+          - major
+          - minor
+          - patch
 
 concurrency: ${{ github.workflow }}-${{ github.ref }}
 
@@ -65,8 +65,9 @@ jobs:
 
       - name: Publish
         run: |
-          OPENCODE_VERSION=${{ inputs.version }} ./script/publish.ts
+          ./script/publish.ts
         env:
+          OPENCODE_BUMP: ${{ inputs.bump }}
           GITHUB_TOKEN: ${{ secrets.SST_GITHUB_TOKEN }}
           AUR_KEY: ${{ secrets.AUR_KEY }}
           NPM_CONFIG_TOKEN: ${{ secrets.NPM_TOKEN }}

+ 12 - 6
script/publish.ts

@@ -9,12 +9,18 @@ if (process.versions.bun !== "1.2.21") {
 console.log("=== publishing ===\n")
 
 const snapshot = process.env["OPENCODE_SNAPSHOT"] === "true"
-const version = snapshot
-  ? `0.0.0-${new Date().toISOString().slice(0, 16).replace(/[-:T]/g, "")}`
-  : process.env["OPENCODE_VERSION"]
-if (!version) {
-  throw new Error("OPENCODE_VERSION is required")
-}
+const version = await (async () => {
+  if (snapshot) return `0.0.0-${new Date().toISOString().slice(0, 16).replace(/[-:T]/g, "")}`
+  const [major, minor, patch] = (await $`gh release list --limit 1 --json tagName --jq '.[0].tagName'`.text())
+    .trim()
+    .replace(/^v/, "")
+    .split(".")
+    .map((x) => Number(x) || 0)
+  const t = process.env["OPENCODE_BUMP"]?.toLowerCase()
+  if (t === "major") return `${major + 1}.0.0`
+  if (t === "minor") return `${major}.${minor + 1}.0`
+  return `${major}.${minor}.${patch + 1}`
+})()
 process.env["OPENCODE_VERSION"] = version
 console.log("version:", version)