2025-12-24 21:18:21 +03:00

80 lines
2.7 KiB
YAML

name: "Clone OTP"
description: "Build docker image with docker"
runs:
using: "composite"
steps:
- name: "Config gradle"
shell: bash
run: |
mkdir -p ~/.gradle
cat > ~/.gradle/init.gradle.kts << 'EOF'
import java.net.URI
val OTP_REPO_PREFIX = "https://nexus.isb/repository/"
val MAVEN_CENTRAL = "https://repo.maven.apache.org/maven2/"
val GRADLE_PLUGIN_REPOSITORY = "https://plugins.gradle.org/m2/"
fun replaceRepository(repo: ArtifactRepository) {
if (repo !is MavenArtifactRepository) {
return
}
val sourceUrl = repo.url
when {
repo.url == URI("${OTP_REPO_PREFIX}central-mvn-proxy/") -> repo.url = URI(MAVEN_CENTRAL)
repo.url == URI("${OTP_REPO_PREFIX}pluginsgradle-mvn-proxy/") ->
repo.url = URI(GRADLE_PLUGIN_REPOSITORY)
repo.url.toString().startsWith(OTP_REPO_PREFIX) -> {
repo.url =
URI(
"http://192.168.76.117/repository/${repo.url.toString().removePrefix(OTP_REPO_PREFIX)}"
)
repo.isAllowInsecureProtocol = true
}
}
if (sourceUrl != repo.url) {
repo.isAllowInsecureProtocol = true
repo.credentials.username = ""
repo.credentials.password = ""
println("$sourceUrl => ${repo.url}")
}
}
val LOCAL_REPOSITORY = "file:/home/${System.getProperty("user.name")}/.m2/repository/"
gradle.settingsEvaluated {
pluginManagement
.repositories
.filterIsInstance<MavenArtifactRepository>()
.filter {
it.url == URI("https://nexus.isb/repository/pluginsgradle-mvn-proxy/") ||
it.url == URI("http://repo.xx/otp-pluginsgradle-mvn-proxy/")
}
.forEach {
pluginManagement.repositories.remove(it)
pluginManagement.repositories.add(0, it)
}
pluginManagement
.repositories
.filterIsInstance<MavenArtifactRepository>()
.filter { it.url == URI(LOCAL_REPOSITORY) }
.forEach {
pluginManagement.repositories.remove(it)
pluginManagement.repositories.add(0, it)
}
}
gradle.beforeSettings {
pluginManagement.repositories.configureEach { replaceRepository(this) }
dependencyResolutionManagement.repositories.configureEach { replaceRepository(this) }
allprojects {
repositories.configureEach { replaceRepository(this) }
}
}
EOF
# - name: 'Cleanup'
# if: always()
# shell: bash
# run: |
# rm -rf ~/.gradle/init.gradle.kts