From f6dc4c6b559790a2f5f1f6ee9f8c04bf0562a37c Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Sat, 18 Feb 2023 23:22:03 +0000
Subject: [PATCH] =?UTF-8?q?[build]=20=E4=BD=BF=E7=94=A8=E8=87=AA=E5=A2=9E?=
 =?UTF-8?q?=E5=BA=8F=E5=8F=B7=E4=BD=9C=E4=B8=BA=E9=A2=84=E8=A7=88=E7=89=88?=
 =?UTF-8?q?=E6=9C=AC=E5=8F=B7=20(#2516)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* [build] Use numerical build index numbers for snapshot versions

* use warning

* Use same index for all machines

* fix get

* different indexes for branches

* add docs
---
 .github/workflows/build.yml                   |  15 ++-
 ci-release-helper/build.gradle.kts            |  75 +++++++++++--
 ci-release-helper/src/buildIndex/Index.kt     |  56 ++++++++++
 .../src/buildIndex/SnapshotVersions.kt        | 105 ++++++++++++++++++
 docs/.images/snapshots-build-jvm.png          | Bin 0 -> 46528 bytes
 docs/.images/snapshots-find-actions.png       | Bin 0 -> 9886 bytes
 docs/UsingSnapshots.md                        |  31 ++++--
 7 files changed, 257 insertions(+), 25 deletions(-)
 create mode 100644 ci-release-helper/src/buildIndex/Index.kt
 create mode 100644 ci-release-helper/src/buildIndex/SnapshotVersions.kt
 create mode 100644 docs/.images/snapshots-build-jvm.png
 create mode 100644 docs/.images/snapshots-find-actions.png

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 15f9ef6c5..2216c557f 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -64,7 +64,8 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev # always use -dev for now
+          MIRAI_BUILD_INDEX_AUTH_USERNAME: ${{ secrets.MIRAI_BUILD_INDEX_AUTH_USERNAME }}
+          MIRAI_BUILD_INDEX_AUTH_PASSWORD: ${{ secrets.MIRAI_BUILD_INDEX_AUTH_PASSWORD }}
 
       - name: "Assemble"
         run: ./gradlew assemble ${{ env.gradleArgs }}
@@ -218,7 +219,8 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev # always use -dev for now
+          MIRAI_BUILD_INDEX_AUTH_USERNAME: ${{ secrets.MIRAI_BUILD_INDEX_AUTH_USERNAME }}
+          MIRAI_BUILD_INDEX_AUTH_PASSWORD: ${{ secrets.MIRAI_BUILD_INDEX_AUTH_PASSWORD }}
 
       - name: "Assemble"
         run: ./gradlew assemble ${{ env.gradleArgs }}
@@ -245,7 +247,6 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev
 
   build-mirai-core-native:
     name: "Native (${{ matrix.os }})"
@@ -258,7 +259,7 @@ jobs:
           - ubuntu-20.04
           #          - ubuntu-18.04
           # - macos-12
-#          - macos-11
+        #          - macos-11
         include:
           - os: windows-2022
             targetName: mingwX64
@@ -361,7 +362,8 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev # always use -dev for now
+          MIRAI_BUILD_INDEX_AUTH_USERNAME: ${{ secrets.MIRAI_BUILD_INDEX_AUTH_USERNAME }}
+          MIRAI_BUILD_INDEX_AUTH_PASSWORD: ${{ secrets.MIRAI_BUILD_INDEX_AUTH_PASSWORD }}
 
       - name: "Test mirai-core-utils for ${{ matrix.os }}"
         run: ./gradlew :mirai-core-utils:${{ matrix.targetName }}Test ${{ env.gradleArgs }}
@@ -393,7 +395,6 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev
 
       - name: Publish LinuxX64 Snapshots
         if: ${{ github.event.pusher && env.isUbuntu == 'true' }}
@@ -403,7 +404,6 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev
 
       - name: Publish macOSX64 Snapshots
         if: ${{ github.event.pusher && env.isMac == 'true' }}
@@ -413,5 +413,4 @@ jobs:
           SNAPSHOTS_PUBLISHING_USER: ${{ secrets.SNAPSHOTS_PUBLISHING_USER }}
           SNAPSHOTS_PUBLISHING_KEY: ${{ secrets.SNAPSHOTS_PUBLISHING_KEY }}
           SNAPSHOTS_PUBLISHING_URL: ${{ secrets.SNAPSHOTS_PUBLISHING_URL }}
-          CURRENT_BRANCH_NAME: dev
 
diff --git a/ci-release-helper/build.gradle.kts b/ci-release-helper/build.gradle.kts
index 3cf7c1088..76d603b02 100644
--- a/ci-release-helper/build.gradle.kts
+++ b/ci-release-helper/build.gradle.kts
@@ -13,6 +13,7 @@ import java.io.ByteArrayOutputStream
 plugins {
     id("io.codearte.nexus-staging") version "0.22.0"
     kotlin("jvm")
+    kotlin("plugin.serialization")
 }
 
 tasks.register<JavaExec>("runcihelper") {
@@ -66,28 +67,75 @@ nexusStaging {
 }
 
 dependencies {
+    implementation(`ktor-client-okhttp`)
     implementation(`kotlinx-serialization-json`)
+    implementation("org.jetbrains.kotlinx", "kotlinx-datetime", "0.4.0")
 }
 
 tasks.register("updateSnapshotVersion") {
     group = "mirai"
 
+    dependsOn(tasks.compileKotlin)
+    dependsOn(tasks.compileJava)
+
     doLast {
-        setProjectVersionForFutureBuilds(snapshotVersion)
+        val out = ByteArrayOutputStream()
+
+        val sha = getSha()
+        val branch = getCurrentGitBranch()
+
+        val result = javaexec {
+            standardOutput = out
+            classpath(sourceSets.main.get().runtimeClasspath)
+            mainClass.set("cihelper.buildIndex.GetNextSnapshotIndex")
+            args(branch, sha)
+            environment(
+                "mirai.build.index.auth.username",
+                System.getenv("MIRAI_BUILD_INDEX_AUTH_USERNAME")
+                    ?: project.property("mirai.build.index.auth.username")
+
+            )
+            environment(
+                "mirai.build.index.auth.password",
+                System.getenv("MIRAI_BUILD_INDEX_AUTH_PASSWORD")
+                    ?: project.property("mirai.build.index.auth.password")
+            )
+        }
+        result.assertNormalExitValue()
+
+        val resultString = out.toByteArray().decodeToString()
+        val index = resultString
+            .substringAfter("<SNAPSHOT_VERSION_START>", "")
+            .substringBefore("<SNAPSHOT_VERSION_END>", "")
+
+        logger.info("Exec result:")
+        logger.info(resultString)
+
+        if (index.isEmpty()) {
+            throw GradleException("Failed to find version.")
+        }
+
+        logger.info("Snapshot version index is '$index'")
+        val versionName = "${Versions.project}-$branch-${index}"
+
+        // Add annotation on GitHub Actions build
+        // https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-notice-message
+        println("::notice ::本 commit 的预览版本号: $versionName    在 https://github.com/mamoe/mirai/blob/dev/docs/UsingSnapshots.md 查看如何使用预览版本")
+
+        setProjectVersionForFutureBuilds(versionName)
     }
 }
 
 tasks.register("publishSnapshotPage") {
     doLast {
-        UpdateSnapshotPage.run(project, getSha())
+        val sha = getSha()
+        logger.info("CommitRef is $sha")
+        UpdateSnapshotPage.run(project, sha)
     }
 }
 
-
-val snapshotVersion by lazy { getSnapshotVersionImpl() }
-
 fun getSnapshotVersionImpl(): String {
-    val branch = System.getenv("CURRENT_BRANCH_NAME")
+    val branch = getCurrentGitBranch()
     logger.info("Current branch name is '$branch'")
     val sha = getSha().trim().take(8)
     return "${Versions.project}-$branch-${sha}".also {
@@ -137,7 +185,20 @@ fun getSha(): String {
         standardOutput = out
         workingDir = rootProject.projectDir
     }
-    val sha = out.toString()
+    val sha = out.toString().trim()
     logger.info("Current commit sha is '$sha'")
     return sha
+}
+
+fun getCurrentGitBranch(): String {
+    val out = ByteArrayOutputStream()
+    exec {
+        commandLine("git")
+        args("rev-parse", "--abbrev-ref", "HEAD")
+        standardOutput = out
+        workingDir = rootProject.projectDir
+    }
+    val sha = out.toString().trim()
+    logger.info("Current branch is '$sha'")
+    return sha
 }
\ No newline at end of file
diff --git a/ci-release-helper/src/buildIndex/Index.kt b/ci-release-helper/src/buildIndex/Index.kt
new file mode 100644
index 000000000..66347b3ab
--- /dev/null
+++ b/ci-release-helper/src/buildIndex/Index.kt
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2019-2022 Mamoe Technologies and contributors.
+ *
+ * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
+ * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
+ *
+ * https://github.com/mamoe/mirai/blob/dev/LICENSE
+ */
+
+@file:UseSerializers(UuidAsStringSerializer::class)
+
+package cihelper.buildIndex
+
+import kotlinx.datetime.LocalDateTime
+import kotlinx.serialization.KSerializer
+import kotlinx.serialization.Serializable
+import kotlinx.serialization.UseSerializers
+import kotlinx.serialization.builtins.serializer
+import kotlinx.serialization.descriptors.SerialDescriptor
+import kotlinx.serialization.encoding.Decoder
+import kotlinx.serialization.encoding.Encoder
+import java.util.*
+
+@Serializable
+data class NextIndexResp(
+    val moduleId: UUID,
+    val branchId: UUID,
+    val previousIndexId: UUID?,
+    val previousIndexValue: UInt?,
+    val newIndex: Index
+)
+
+@Serializable
+data class Index(
+    val id: UUID,
+    val branchId: UUID,
+    val commitRef: String,
+    val value: UInt,
+    val date: LocalDateTime
+) {
+    init {
+        require(commitRef.length == 40) { "Invalid commit ref: '$commitRef'" }
+    }
+}
+
+
+object UuidAsStringSerializer : KSerializer<UUID> {
+    override val descriptor: SerialDescriptor = String.serializer().descriptor
+    override fun deserialize(decoder: Decoder): UUID {
+        return UUID.fromString(String.serializer().deserialize(decoder))
+    }
+
+    override fun serialize(encoder: Encoder, value: UUID) {
+        String.serializer().serialize(encoder, value.toString())
+    }
+}
\ No newline at end of file
diff --git a/ci-release-helper/src/buildIndex/SnapshotVersions.kt b/ci-release-helper/src/buildIndex/SnapshotVersions.kt
new file mode 100644
index 000000000..b3d3f4c62
--- /dev/null
+++ b/ci-release-helper/src/buildIndex/SnapshotVersions.kt
@@ -0,0 +1,105 @@
+/*
+ * Copyright 2019-2022 Mamoe Technologies and contributors.
+ *
+ * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
+ * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
+ *
+ * https://github.com/mamoe/mirai/blob/dev/LICENSE
+ */
+
+package cihelper.buildIndex
+
+import io.ktor.client.*
+import io.ktor.client.request.*
+import io.ktor.client.statement.*
+import io.ktor.http.*
+import kotlinx.coroutines.runBlocking
+import kotlinx.serialization.builtins.ListSerializer
+import kotlinx.serialization.json.Json
+
+object GetNextSnapshotIndex {
+    @JvmStatic
+    fun main(args: Array<String>) {
+        val branch = args.getOrNull(0) ?: error("Missing branch argument")
+        val commitRef = args.getOrNull(1) ?: error("Missing commitRef argument")
+
+
+        println("Commit ref is: $commitRef")
+        println("Making request...")
+        HttpClient().use { client ->
+            runBlocking {
+                kotlin.runCatching { client.createBranch(branch = branch) }
+
+                var index = client.getExistingIndex(branch = branch, commitRef = commitRef)
+                if (index == null) {
+                    print("No existing index found. ")
+                    index = client.postNextIndex(branch = branch, commitRef = commitRef)
+                    println("Got new index: $index")
+                } else {
+                    print("Existing index: $index")
+                }
+                println()
+
+                println("<SNAPSHOT_VERSION_START>${index.value}<SNAPSHOT_VERSION_END>")
+            }
+        }
+    }
+}
+
+suspend fun HttpClient.getExistingIndex(
+    module: String = "mirai-core",
+    branch: String,
+    commitRef: String,
+): Index? {
+    // https://build.mirai.mamoe.net/v1/mirai-core/dev/indexes/?commitRef=29121565132bed6e996f3de32faaf49106ae8e39
+    val resp = get("https://build.mirai.mamoe.net/v1/$module/$branch/indexes/") {
+        basicAuth(
+            System.getenv("mirai.build.index.auth.username"),
+            System.getenv("mirai.build.index.auth.password")
+        )
+        parameter("commitRef", commitRef)
+    }
+    if (!resp.status.isSuccess()) {
+        val body = runCatching { resp.bodyAsText() }.getOrNull()
+        throw IllegalStateException("Request failed: ${resp.status}  $body")
+    }
+
+    val body = resp.bodyAsText()
+    if (body.isBlank()) return null
+    return Json.decodeFromString(ListSerializer(Index.serializer()), body).lastOrNull()
+}
+
+suspend fun HttpClient.createBranch(
+    module: String = "mirai-core",
+    branch: String,
+): Boolean {
+    // https://build.mirai.mamoe.net/v1/mirai-core/dev/indexes/?commitRef=29121565132bed6e996f3de32faaf49106ae8e39
+    val resp = put("https://build.mirai.mamoe.net/v1/$module/$branch") {
+        basicAuth(
+            System.getenv("mirai.build.index.auth.username"),
+            System.getenv("mirai.build.index.auth.password")
+        )
+    }
+    return resp.status.isSuccess()
+}
+
+suspend fun HttpClient.postNextIndex(
+    module: String = "mirai-core",
+    branch: String,
+    commitRef: String,
+): Index {
+    val resp = post("https://build.mirai.mamoe.net/v1/$module/$branch/indexes/next") {
+        basicAuth(
+            System.getenv("mirai.build.index.auth.username"),
+            System.getenv("mirai.build.index.auth.password")
+        )
+        parameter("commitRef", commitRef)
+    }
+    if (!resp.status.isSuccess()) {
+        val body = runCatching { resp.bodyAsText() }.getOrNull()
+        throw IllegalStateException("Request failed: ${resp.status}  $body")
+    }
+
+    val body = resp.bodyAsText()
+    return Json.decodeFromString(NextIndexResp.serializer(), body).newIndex
+}
\ No newline at end of file
diff --git a/docs/.images/snapshots-build-jvm.png b/docs/.images/snapshots-build-jvm.png
new file mode 100644
index 0000000000000000000000000000000000000000..1c68a9cd8335226280570895de1ccbddefeacde8
GIT binary patch
literal 46528
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

literal 0
HcmV?d00001

diff --git a/docs/.images/snapshots-find-actions.png b/docs/.images/snapshots-find-actions.png
new file mode 100644
index 0000000000000000000000000000000000000000..bd0f159a9b8977d02f740587bf6f20ad9ca99f3c
GIT binary patch
literal 9886
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

literal 0
HcmV?d00001

diff --git a/docs/UsingSnapshots.md b/docs/UsingSnapshots.md
index 33f7167c9..b3799f91b 100644
--- a/docs/UsingSnapshots.md
+++ b/docs/UsingSnapshots.md
@@ -12,6 +12,7 @@
 ### 1. 添加 Maven 仓库
 
 ```xml
+
 <repositories>
     <repository>
         <id>miraisnapshots</id>
@@ -23,26 +24,30 @@
 
 ### 2. 修改依赖版本
 
-1. 选择需要测试的 commit, 找到其 revision id (即 SHA), 取前 8 位, 如 `3cb39c4`.
-2. 在该 commit 所属分支的 `buildSrc/src/main/kotlin/Versions.kt` 确认 mirai 主版本号如 `2.8.0-M1`.
-3. 得到开发测试版本号 `2.8.0-M1-dev-3cb39c4`.
+1. 选择需要测试的 commit, 在 GitHub 查看其构建状态, 如图所示:  
+   ![](.images/snapshots-find-actions.png)
+2. 点击 "Build / JVM" 右侧的 "Details":  
+   ![](.images/snapshots-build-jvm.png)
+3. 在打开的页面中点击 "Summary", 然后在 "Annotations" 栏目中找到类似 "本 commit 的预览版本号: 2.15.0-build-index-1" 的提示, 得到开发测试版本号 `2.15.0-build-index-1`. 其中, `build-index` 为此 commit 所属分支名, `2.15.0` 意为当前分支的主版本号, `1` 为此分支下的第 1 次成功构建.
+   通常在 `dev` 分支构建的预览版本号类似为 `2.15.0-dev-102`
 
 ```xml
+
 <dependencies>
     <dependency>
         <groupId>net.mamoe</groupId>
         <artifactId>mirai-core-jvm</artifactId>
-        <version>2.8.0-M1-dev-3cb39c4</version>
+        <version>2.15.0-build-index-1</version>
     </dependency>
 </dependencies>
 ```
 
 ## 在 Gradle 使用
 
-
 ### 1. 添加 Maven 仓库
 
 build.gradle(.kts)
+
 ```
 repositories {
    maven("https://repo.mirai.mamoe.net/snapshots") 
@@ -51,20 +56,25 @@ repositories {
 
 ### 2. 修改依赖版本
 
-1. 选择需要测试的 commit, 找到其 revision id (即 SHA), 取前 8 位, 如 `3cb39c4`.
-2. 在该 commit 所属分支的 `buildSrc/src/main/kotlin/Versions.kt` 确认 mirai 主版本号如 `2.8.0-M1`.
-3. 得到开发测试版本号 `2.8.0-M1-dev-3cb39c4`.
+1. 选择需要测试的 commit, 在 GitHub 查看其构建状态, 如图所示:  
+   ![](.images/snapshots-find-actions.png)
+2. 点击 "Build / JVM" 右侧的 "Details":  
+   ![](.images/snapshots-build-jvm.png)
+3. 在打开的页面中点击 "Summary", 然后在 "Annotations" 栏目中找到类似 "本 commit 的预览版本号: 2.15.0-build-index-1" 的提示, 得到开发测试版本号 `2.15.0-build-index-1`. 其中, `build-index` 为此 commit 所属分支名, `2.15.0` 意为当前分支的主版本号, `1` 为此分支下的第 1 次成功构建.
+   通常在 `dev` 分支构建的预览版本号类似为 `2.15.0-dev-102`
 
 build.gradle(.kts)
+
 ```
 dependencies {
-    implementation("net.mamoe:mirai-core:2.8.0-M1-dev-3cb39c4")
+    implementation("net.mamoe:mirai-core:2.15.0-build-index-1")
 }
 ```
 
 ## 使用测试版本 Mirai Console Gradle 插件
 
 settings.gradle(.kts)
+
 ```
 pluginManagement {
     repositories {
@@ -75,9 +85,10 @@ pluginManagement {
 ```
 
 plugin.gradle(.kts)
+
 ```
 plugins {
     // ...
-    id("net.mamoe.mirai-console") version "2.8.0-M1-dev-3cb39c4"
+    id("net.mamoe.mirai-console") version "2.15.0-build-index-1"
 }
 ```
\ No newline at end of file