55
66$ErrorActionPreference = " Stop"
77
8- # ---- Validate required env vars ----
9- foreach ($var in @ (' R2_SECRET_ID' , ' R2_SECRET_KEY' , ' R2_BUCKET' , ' R2_BASE_URL' )) {
10- if (-not $env :$var ) { throw " Missing required env: $var " }
11- }
12-
138$suffix = if ($Type -eq " beta" ) { " -beta" } else { " " }
149
1510# ---- Find the built jar ----
@@ -34,48 +29,57 @@ if ($isSnapshot) {
3429$mcVersions = ((Get-Content " gradle.properties" | Select-String " ^minecraft_major_versions=" ) -replace " ^.*=" , " " ).Trim()
3530$mcVersionList = $mcVersions -split " ," | ForEach-Object { $_.Trim () }
3631
37- $baseUrl = $ env: R2_BASE_URL .TrimEnd ( ' / ' )
32+ $baseUrl = " _BASE_URL_ "
3833
3934# ---- Generate latest(-beta).json ----
4035$latestJson = @ {
4136 version = $shortVersion
4237 downloads = @ { Universal = " $baseUrl /$jarKey " }
4338 launchermeta = @ {}
4439} | ConvertTo-Json - Depth 10
45- Set-Content - Path " $ArtifactDir /latest$suffix .json" - Value $latestJson - NoNewline
4640
4741# ---- Generate detail(-beta).json ----
4842$details = [ordered ]@ {}
4943foreach ($mcVer in $mcVersionList ) {
50- $details [$mcVer ] = @ { Universal = " $baseUrl /$jarKey " }
44+ $details [$mcVer ] = @ {
45+ Fabric = " $baseUrl /$jarKey "
46+ Forge = " $baseUrl /$jarKey "
47+ NeoForge = " $baseUrl /$jarKey "
48+ Quilt = " $baseUrl /$jarKey "
49+ }
5150}
5251$detailJson = @ {
5352 version = $shortVersion
5453 timestamp = [System.DateTimeOffset ]::UtcNow.ToUnixTimeMilliseconds()
5554 details = $details
5655} | ConvertTo-Json - Depth 10
57- Set-Content - Path " $ArtifactDir /detail$suffix .json" - Value $detailJson - NoNewline
5856
59- # ---- Upload JSON files to R2 ----
57+ # ---- Upload files to R2 ----
6058$env: AWS_ACCESS_KEY_ID = $env: R2_SECRET_ID
6159$env: AWS_SECRET_ACCESS_KEY = $env: R2_SECRET_KEY
6260$env: AWS_DEFAULT_REGION = " auto"
6361
62+ aws s3 cp " $ArtifactDir /$jarFilename " " s3://$env: R2_BUCKET /$jarKey " -- endpoint- url $ ($env: R2_BASE_URL.TrimEnd (' /' ))
63+ $latestJson -replace $baseUrl , " https://csl.3-3.dev" | Set-Content - Path " $ArtifactDir /latest$suffix .json" - NoNewline
64+ $detailJson -replace $baseUrl , " https://csl.3-3.dev" | Set-Content - Path " $ArtifactDir /detail$suffix .json" - NoNewline
6465aws s3 cp " $ArtifactDir /latest$suffix .json" " s3://$env: R2_BUCKET /latest$suffix .json" -- endpoint- url $ ($env: R2_BASE_URL.TrimEnd (' /' ))
6566aws s3 cp " $ArtifactDir /detail$suffix .json" " s3://$env: R2_BUCKET /detail$suffix .json" -- endpoint- url $ ($env: R2_BASE_URL.TrimEnd (' /' ))
6667
67- # ---- Upload JSON files to COS ----
68+ # ---- Upload files to COS ----
69+ $cdnBase = " https://csl.littleservice.cn"
6870try {
6971 pip install coscmd - q -- disable-pip - version- check
7072 coscmd config - a $env: COS_SECRET_ID - s $env: COS_SECRET_KEY - b $env: COS_BUCKET - r ap- shanghai
73+ coscmd upload " $ArtifactDir /$jarFilename " " $jarKey "
74+ $latestJson -replace $baseUrl , $cdnBase | Set-Content - Path " $ArtifactDir /latest$suffix .json" - NoNewline
75+ $detailJson -replace $baseUrl , $cdnBase | Set-Content - Path " $ArtifactDir /detail$suffix .json" - NoNewline
7176 coscmd upload " $ArtifactDir /latest$suffix .json" " latest$suffix .json"
7277 coscmd upload " $ArtifactDir /detail$suffix .json" " detail$suffix .json"
7378} catch {
7479 Write-Warning " COS JSON upload failed: $_ "
7580}
7681
7782# ---- Output CDN URLs for subsequent refresh step ----
78- $cdnBase = " https://csl.littleservice.cn"
7983" cdn-urls<<EOF" | Out-File $env: GITHUB_OUTPUT - Append
8084" ${cdnBase} /latest${suffix} .json" | Out-File $env: GITHUB_OUTPUT - Append
8185" ${cdnBase} /detail${suffix} .json" | Out-File $env: GITHUB_OUTPUT - Append
0 commit comments