Просмотр исходного кода

Merge pull request #4228 from allMagicNB/main

让工作流编译支持替换 client_id 和 x-api-key
龙腾猫跃 2 лет назад
Родитель
Сommit
30bc43bdb5

+ 12 - 15
.github/workflows/build.yml

@@ -1,5 +1,4 @@
 name: Build
-
 on:
   push:
     paths:
@@ -12,37 +11,35 @@ on:
   workflow_dispatch:
 
 jobs:
-
   build:
-
-    strategy: 
-      matrix: 
-        configuration: [Debug, Release, Snapshot, BETA, ReleaseUpdate]
-
+    name: Build
     runs-on: windows-latest
-
+    strategy:  
+       matrix:  
+         configuration: [Debug, Release]
     steps:
     - name: Checkout
       uses: actions/checkout@v4
       with:
         fetch-depth: 0
-
     - name: Set Describe
       shell: bash
       run: |
-          Describe=`git describe --tags --always`
-          echo "Describe=$Describe" >> $GITHUB_ENV
-
+          describe=`git describe --tags --always`
+          echo "describe=$describe" >> $GITHUB_ENV
     - name: Setup MSBuild.exe
       uses: microsoft/setup-msbuild@v2
       with:
         msbuild-architecture: x64
-
+    - name: Replace
+      run: |
+        (gc "Plain Craft Launcher 2\Modules\ModSecret.vb") -replace 'Public Const OAuthClientId As String = ""', 'Public Const OAuthClientId As String = "${{ secrets.CLIENT_ID }}"' | Out-File "Plain Craft Launcher 2\Modules\ModSecret.vb"
+        (gc "Plain Craft Launcher 2\Modules\ModSecret.vb") -replace 'Public Const CurseForgeAPIKey As String = ""', 'Public Const CurseForgeAPIKey As String = "${{ secrets.CURSEFORGE_API_KEY }}"' | Out-File "Plain Craft Launcher 2\Modules\ModSecret.vb"
+        (gc "Plain Craft Launcher 2\Modules\Base\ModBase.vb") -replace 'Public Const CommitHash As String = ""', 'Public Const CommitHash As String = "${{ github.sha }}"' | Out-File "Plain Craft Launcher 2\Modules\Base\ModBase.vb"
     - name: Build
       run: msbuild "Plain Craft Launcher 2\Plain Craft Launcher 2.vbproj" -p:Configuration=${{ matrix.configuration }}
-
     - name: Upload a Build Artifact
       uses: actions/upload-artifact@v4
       with:
-        name: ${{ matrix.configuration }} ${{ env.Describe }}
+        name: ${{ matrix.configuration }} ${{ env.describe }}
         path: Plain Craft Launcher 2\obj\${{ matrix.configuration }}\Plain Craft Launcher 2.exe

+ 1 - 1
Plain Craft Launcher 2/Application.xaml.vb

@@ -105,7 +105,7 @@ Public Class Application
             '日志初始化
             LogStart()
             '添加日志
-            Log($"[Start] 程序版本:{VersionDisplayName} ({VersionCode})")
+            Log($"[Start] 程序版本:{VersionDisplayName} ({VersionCode}){If(CommitHash <> "", $",Commit Hash:{CommitHash}", "")}")
             Log($"[Start] 识别码:{UniqueAddress}{If(ThemeCheckOne(9), ",已解锁反馈主题", "")}")
             Log($"[Start] 程序路径:{PathWithName}")
             Log($"[Start] 系统编码:{Encoding.Default} ({Encoding.Default.CodePage}, GBK={IsGBKEncoding})")

+ 1 - 0
Plain Craft Launcher 2/Modules/Base/ModBase.vb

@@ -13,6 +13,7 @@ Public Module ModBase
     '下列版本信息由更新器自动修改
     Public Const VersionBaseName As String = "2.8.6" '不含分支前缀的显示用版本名
     Public Const VersionStandardCode As String = "2.8.6." & VersionBranchCode '标准格式的四段式版本号
+    Public Const CommitHash As String = "" 'Commit Hash
 #If BETA Then
     Public Const VersionCode As Integer = 336 'Release
 #Else

+ 5 - 3
Plain Craft Launcher 2/Modules/ModSecret.vb

@@ -12,6 +12,8 @@ Friend Module ModSecret
     Public Const RegFolder As String = "PCLDebug"
     '用于微软登录的 ClientId
     Public Const OAuthClientId As String = ""
+    'CurseForge API Key
+    Public Const CurseForgeAPIKey As String = ""
 
     Friend Sub SecretOnApplicationStart()
         '提升 UI 线程优先级
@@ -44,7 +46,7 @@ Friend Module ModSecret
         End If
         '开源版本提示
         MyMsgBox($"该版本中无法使用以下特性:
-- CurseForge API 调用:需要你自行申请 API Key,然后添加到 SecretHeadersSign 方法中
+- CurseForge API 调用:需要你自行申请 API Key,然后添加到 ModSecret.vb 的开头
 - 正版登录:需要你自行申请 Client ID,然后添加到 ModSecret.vb 的开头
 - 更新与联网通知:避免滥用隐患
 - 主题切换:这是需要赞助解锁的纪念性质的功能,别让赞助者太伤心啦……
@@ -107,7 +109,7 @@ Friend Module ModSecret
             Client.Headers("User-Agent") = "PCL2/" & VersionStandardCode
         End If
         Client.Headers("Referer") = "http://" & VersionCode & ".pcl2.open.server/"
-        '如果你有 CurseForge API Key,请添加到 Headers 中,以恢复对 CurseForge 的访问
+        Client.Headers("x-api-key") = CurseForgeAPIKey
     End Sub
     ''' <summary>
     ''' 设置 Headers 的 UA、Referer。
@@ -121,7 +123,7 @@ Friend Module ModSecret
             Request.UserAgent = "PCL2/" & VersionStandardCode
         End If
         Request.Referer = "http://" & VersionCode & ".pcl2.open.server/"
-        '如果你有 CurseForge API Key,请添加到 Headers 中,以恢复对 CurseForge 的访问
+        Request.Headers("x-api-key") = CurseForgeAPIKey
     End Sub
 
 #End Region