3 Commits

Author SHA1 Message Date
a65a57f9e2 ci(github-action): 减少矩阵量, 以免大量占用 Action 资源.
把 windows 系统移除, 因此只需要检查是否兼容 jvm 版本即可.
2022-08-18 12:50:49 +08:00
19cc1b9358 ci(github-action): 试着加入兼容性测试.
试一下 Github Action 的矩阵作业, 不过本项目可能还用不到兼容性测试, 所以本改动可能不会并入主分支.
2022-08-18 12:43:55 +08:00
ff396425a7 refactor: 补充缺失代码.
由于先前的修改导致代码缺失, 我现在同意暂存功能很好用了.
2022-08-18 01:06:54 +08:00
2 changed files with 45 additions and 23 deletions

View File

@ -13,7 +13,7 @@ permissions:
contents: read contents: read
jobs: jobs:
build: build-and-test:
timeout-minutes: 8 timeout-minutes: 8
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -32,3 +32,27 @@ jobs:
with: with:
gradle-version: 'wrapper' gradle-version: 'wrapper'
arguments: test arguments: test
compatibility-check:
timeout-minutes: 30
continue-on-error: true
strategy:
matrix:
os: [ ubuntu-latest ]
java-version: [ 11, 12, 13, 14, 15, 16, 17, 18 ]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Set up JDK
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: 'adopt-hotspot'
cache: 'gradle'
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build and test
uses: gradle/gradle-build-action@v2.2.1
with:
gradle-version: 'wrapper'
arguments: test

View File

@ -1,7 +1,6 @@
package net.lamgc.scalabot package net.lamgc.scalabot
import ch.qos.logback.core.PropertyDefinerBase import ch.qos.logback.core.PropertyDefinerBase
import com.google.common.net.InternetDomainName
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.GsonBuilder import com.google.gson.GsonBuilder
import com.google.gson.JsonArray import com.google.gson.JsonArray
@ -16,9 +15,9 @@ import org.eclipse.aether.repository.RepositoryPolicy
import org.telegram.telegrambots.bots.DefaultBotOptions import org.telegram.telegrambots.bots.DefaultBotOptions
import java.io.File import java.io.File
import java.net.URL import java.net.URL
import java.net.URLEncoder
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
import java.util.concurrent.atomic.AtomicInteger
import java.util.function.Supplier import java.util.function.Supplier
import kotlin.reflect.KProperty import kotlin.reflect.KProperty
@ -45,7 +44,7 @@ internal fun ProxyConfig.toAetherProxy(): Proxy? {
internal fun MavenRepositoryConfig.toRemoteRepository(proxyConfig: ProxyConfig? = null): RemoteRepository { internal fun MavenRepositoryConfig.toRemoteRepository(proxyConfig: ProxyConfig? = null): RemoteRepository {
val repositoryId = if (id == null) { val repositoryId = if (id == null) {
val generatedRepoId = createDefaultRepositoryId(url) val generatedRepoId = createDefaultRepositoryId()
log.debug { "仓库 Url `$url` 未设置仓库 Id, 已分配缺省 Id: $generatedRepoId" } log.debug { "仓库 Url `$url` 未设置仓库 Id, 已分配缺省 Id: $generatedRepoId" }
generatedRepoId generatedRepoId
} else { } else {
@ -93,11 +92,10 @@ private fun checkRepositoryLayout(layoutType: String): String {
return type return type
} }
private fun createDefaultRepositoryId(url: URL): String { private val repoNumberGenerator = AtomicInteger(1)
val topPrivateDomain = InternetDomainName.from(url.host).topPrivateDomain().toString()
return "Repository-${URLEncoder.encode(topPrivateDomain, StandardCharsets.UTF_8)}-${ private fun createDefaultRepositoryId(): String {
url.toString().hashCode().toString(16) return "Repository-${repoNumberGenerator.getAndIncrement()}"
}"
} }
/** /**