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() .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() .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